Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9f928f9b66 | ||
|
|
a50b5071b3 | ||
|
|
72db18f0ad |
@@ -30,6 +30,8 @@ METADATA_INSERT_BATCH_SIZE=50000
|
|||||||
COLLECTOR_QBIT_ENABLED=false
|
COLLECTOR_QBIT_ENABLED=false
|
||||||
COLLECTOR_DEBRID_ENABLED=true
|
COLLECTOR_DEBRID_ENABLED=true
|
||||||
COLLECTOR_REAL_DEBRID_API_KEY=
|
COLLECTOR_REAL_DEBRID_API_KEY=
|
||||||
|
QBIT_HOST=http://qbittorrent:8080
|
||||||
|
QBIT_TRACKERS_URL=https://ngosang.github.io/trackerslist/trackers_all.txt
|
||||||
|
|
||||||
# Addon
|
# Addon
|
||||||
DEBUG_MODE=false
|
DEBUG_MODE=false
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ x-depends: &knightcrawler-app-depends
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
metadata:
|
metadata:
|
||||||
image: gabisonfire/knightcrawler-metadata:2.0.4
|
image: gabisonfire/knightcrawler-metadata:2.0.7
|
||||||
env_file: ../.env
|
env_file: ../.env
|
||||||
networks:
|
networks:
|
||||||
- knightcrawler-network
|
- knightcrawler-network
|
||||||
@@ -30,7 +30,7 @@ services:
|
|||||||
condition: service_completed_successfully
|
condition: service_completed_successfully
|
||||||
|
|
||||||
migrator:
|
migrator:
|
||||||
image: gabisonfire/knightcrawler-migrator:2.0.4
|
image: gabisonfire/knightcrawler-migrator:2.0.7
|
||||||
env_file: ../.env
|
env_file: ../.env
|
||||||
networks:
|
networks:
|
||||||
- knightcrawler-network
|
- knightcrawler-network
|
||||||
@@ -40,7 +40,7 @@ services:
|
|||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
|
|
||||||
addon:
|
addon:
|
||||||
image: gabisonfire/knightcrawler-addon:2.0.4
|
image: gabisonfire/knightcrawler-addon:2.0.7
|
||||||
<<: [*knightcrawler-app, *knightcrawler-app-depends]
|
<<: [*knightcrawler-app, *knightcrawler-app-depends]
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
hostname: knightcrawler-addon
|
hostname: knightcrawler-addon
|
||||||
@@ -48,22 +48,22 @@ services:
|
|||||||
- "7000:7000"
|
- "7000:7000"
|
||||||
|
|
||||||
consumer:
|
consumer:
|
||||||
image: gabisonfire/knightcrawler-consumer:2.0.4
|
image: gabisonfire/knightcrawler-consumer:2.0.7
|
||||||
<<: [*knightcrawler-app, *knightcrawler-app-depends]
|
<<: [*knightcrawler-app, *knightcrawler-app-depends]
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
debridcollector:
|
debridcollector:
|
||||||
image: gabisonfire/knightcrawler-debrid-collector:2.0.4
|
image: gabisonfire/knightcrawler-debrid-collector:2.0.7
|
||||||
<<: [*knightcrawler-app, *knightcrawler-app-depends]
|
<<: [*knightcrawler-app, *knightcrawler-app-depends]
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
producer:
|
producer:
|
||||||
image: gabisonfire/knightcrawler-producer:2.0.4
|
image: gabisonfire/knightcrawler-producer:2.0.7
|
||||||
<<: [*knightcrawler-app, *knightcrawler-app-depends]
|
<<: [*knightcrawler-app, *knightcrawler-app-depends]
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
qbitcollector:
|
qbitcollector:
|
||||||
image: gabisonfire/knightcrawler-qbit-collector:2.0.4
|
image: gabisonfire/knightcrawler-qbit-collector:2.0.7
|
||||||
<<: [*knightcrawler-app, *knightcrawler-app-depends]
|
<<: [*knightcrawler-app, *knightcrawler-app-depends]
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
|
|||||||
@@ -62,7 +62,10 @@ public static class ServiceCollectionExtensions
|
|||||||
cfg.UseMessageRetry(r => r.Intervals(1000,2000,5000));
|
cfg.UseMessageRetry(r => r.Intervals(1000,2000,5000));
|
||||||
cfg.UseInMemoryOutbox();
|
cfg.UseInMemoryOutbox();
|
||||||
})
|
})
|
||||||
.RedisRepository(redisConfiguration.ConnectionString)
|
.RedisRepository(redisConfiguration.ConnectionString, options =>
|
||||||
|
{
|
||||||
|
options.KeyPrefix = "debrid-collector:";
|
||||||
|
})
|
||||||
.Endpoint(
|
.Endpoint(
|
||||||
e =>
|
e =>
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -99,7 +99,10 @@ public static class ServiceCollectionExtensions
|
|||||||
timeout.Timeout = TimeSpan.FromMinutes(1);
|
timeout.Timeout = TimeSpan.FromMinutes(1);
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.RedisRepository(redisConfiguration.ConnectionString);
|
.RedisRepository(redisConfiguration.ConnectionString, options =>
|
||||||
|
{
|
||||||
|
options.KeyPrefix = "qbit-collector:";
|
||||||
|
});
|
||||||
|
|
||||||
private static void AddQBitTorrentClient(this IServiceCollection services)
|
private static void AddQBitTorrentClient(this IServiceCollection services)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,7 +3,9 @@ namespace QBitCollector.Features.Qbit;
|
|||||||
public class QbitConfiguration
|
public class QbitConfiguration
|
||||||
{
|
{
|
||||||
private const string Prefix = "QBIT";
|
private const string Prefix = "QBIT";
|
||||||
private const string ConnectionStringVariable = "HOST";
|
private const string HOST_VARIABLE = "HOST";
|
||||||
|
private const string TRACKERS_URL_VARIABLE = "TRACKERS_URL";
|
||||||
|
|
||||||
public string? Host { get; init; } = Prefix.GetRequiredEnvironmentVariableAsString(ConnectionStringVariable);
|
public string? Host { get; init; } = Prefix.GetRequiredEnvironmentVariableAsString(HOST_VARIABLE);
|
||||||
|
public string? TrackersUrl { get; init; } = Prefix.GetRequiredEnvironmentVariableAsString(TRACKERS_URL_VARIABLE);
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,7 @@
|
|||||||
namespace QBitCollector.Features.Trackers;
|
namespace QBitCollector.Features.Trackers;
|
||||||
|
|
||||||
public class TrackersService(IDistributedCache cache, HttpClient client, IMemoryCache memoryCache) : ITrackersService
|
public class TrackersService(IDistributedCache cache, HttpClient client, IMemoryCache memoryCache, QbitConfiguration configuration) : ITrackersService
|
||||||
{
|
{
|
||||||
private const string TrackersListUrl = "https://ngosang.github.io/trackerslist/trackers_all.txt";
|
|
||||||
private const string CacheKey = "trackers";
|
private const string CacheKey = "trackers";
|
||||||
|
|
||||||
public async Task<List<string>> GetTrackers()
|
public async Task<List<string>> GetTrackers()
|
||||||
@@ -42,7 +41,7 @@ public class TrackersService(IDistributedCache cache, HttpClient client, IMemory
|
|||||||
|
|
||||||
private async Task<List<string>> GetTrackersAsync()
|
private async Task<List<string>> GetTrackersAsync()
|
||||||
{
|
{
|
||||||
var response = await client.GetStringAsync(TrackersListUrl);
|
var response = await client.GetStringAsync(configuration.TrackersUrl);
|
||||||
|
|
||||||
var lines = response.Split(["\r\n", "\r", "\n"], StringSplitOptions.None);
|
var lines = response.Split(["\r\n", "\r", "\n"], StringSplitOptions.None);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user