mirror of
https://github.com/idanoo/autobrr
synced 2025-07-23 16:59:12 +00:00
Feature: Support multi user per irc network (#78)
* feat: delete irc network in transaction * feat: use compound key for irc handlers * chore: update deps * refactor: start network * refactor: init irc handler * indexers: update network name
This commit is contained in:
parent
f466657ed4
commit
2daeedbdc7
14 changed files with 491 additions and 428 deletions
|
@ -20,7 +20,7 @@ settings:
|
|||
help: "Check how to get cookies in your browser and find the uid and pass cookies. Example: uid=1234; pass=asdf12347asdf13"
|
||||
|
||||
irc:
|
||||
network: P2P-NET
|
||||
network: P2P-Network
|
||||
server: irc.p2p-network.net
|
||||
port: 6697
|
||||
tls: true
|
||||
|
|
|
@ -20,7 +20,7 @@ settings:
|
|||
regex: /([a-zA-Z0-9\+])
|
||||
|
||||
irc:
|
||||
network: p2p-network.net
|
||||
network: P2P-Network
|
||||
server: irc.p2p-network.net
|
||||
port: 6697
|
||||
tls: true
|
||||
|
|
63
internal/indexer/definitions/mock1.yaml
Normal file
63
internal/indexer/definitions/mock1.yaml
Normal file
|
@ -0,0 +1,63 @@
|
|||
---
|
||||
#id: tracker01
|
||||
name: Mock1
|
||||
identifier: mock1
|
||||
description: Mock1 is just a mock indexer
|
||||
language: en-us
|
||||
urls:
|
||||
- http://localhost.test
|
||||
privacy: private
|
||||
protocol: torrent
|
||||
supports:
|
||||
- irc
|
||||
- rss
|
||||
source: custom
|
||||
settings:
|
||||
- name: rsskey
|
||||
type: secret
|
||||
label: RSS key
|
||||
help: "Go to your profile and copy your RSS key"
|
||||
regex: /([\da-fA-F]{20})
|
||||
|
||||
irc:
|
||||
network: LocalHost
|
||||
server: localhost
|
||||
port: 6697
|
||||
tls: true
|
||||
channels:
|
||||
- "#announces"
|
||||
announcers:
|
||||
- _AnnounceBot_
|
||||
settings:
|
||||
- name: nickserv.account
|
||||
type: text
|
||||
required: true
|
||||
label: NickServ Account
|
||||
help: NickServ account. Make sure to group your user and bot. Eg. user_bot
|
||||
- name: nickserv.password
|
||||
type: secret
|
||||
required: false
|
||||
label: NickServ Password
|
||||
help: NickServ password
|
||||
|
||||
parse:
|
||||
type: single
|
||||
lines:
|
||||
- test:
|
||||
- "New Torrent Announcement: <PC :: Iso> Name:'debian live 10 6 0 amd64 standard iso' uploaded by 'Anonymous' - http://www.tracker01.test/torrent/000000"
|
||||
- "New Torrent Announcement: <PC :: Iso> Name:'debian live 10 6 0 amd64 standard iso' uploaded by 'Anonymous' freeleech - http://www.tracker01.test/torrent/000000"
|
||||
pattern: New Torrent Announcement:\s*<([^>]*)>\s*Name:'(.*)' uploaded by '([^']*)'\s*(freeleech)*\s*-\s*(https?\:\/\/[^\/]+\/)torrent\/(\d+)
|
||||
vars:
|
||||
- category
|
||||
- torrentName
|
||||
- uploader
|
||||
- freeleech
|
||||
- baseUrl
|
||||
- torrentId
|
||||
|
||||
match:
|
||||
torrenturl: "{{ .baseUrl }}rss/download/{{ .torrentId }}/{{ .rsskey }}/{{ .torrentName }}.torrent"
|
||||
encode:
|
||||
- torrentName
|
||||
|
||||
|
63
internal/indexer/definitions/mock2.yaml
Normal file
63
internal/indexer/definitions/mock2.yaml
Normal file
|
@ -0,0 +1,63 @@
|
|||
---
|
||||
#id: tracker01
|
||||
name: Mock2
|
||||
identifier: mock2
|
||||
description: Mock2 is just a mock indexer
|
||||
language: en-us
|
||||
urls:
|
||||
- http://localhost.test
|
||||
privacy: private
|
||||
protocol: torrent
|
||||
supports:
|
||||
- irc
|
||||
- rss
|
||||
source: custom
|
||||
settings:
|
||||
- name: rsskey
|
||||
type: secret
|
||||
label: RSS key
|
||||
help: "Go to your profile and copy your RSS key"
|
||||
regex: /([\da-fA-F]{20})
|
||||
|
||||
irc:
|
||||
network: LocalHost
|
||||
server: localhost
|
||||
port: 6697
|
||||
tls: true
|
||||
channels:
|
||||
- "#mannounces"
|
||||
announcers:
|
||||
- Jerry
|
||||
settings:
|
||||
- name: nickserv.account
|
||||
type: text
|
||||
required: true
|
||||
label: NickServ Account
|
||||
help: NickServ account. Make sure to group your user and bot. Eg. user_bot
|
||||
- name: nickserv.password
|
||||
type: secret
|
||||
required: false
|
||||
label: NickServ Password
|
||||
help: NickServ password
|
||||
|
||||
parse:
|
||||
type: single
|
||||
lines:
|
||||
- test:
|
||||
- "New Torrent Announcement: <PC :: Iso> Name:'debian live 10 6 0 amd64 standard iso' uploaded by 'Anonymous' - http://www.tracker01.test/torrent/000000"
|
||||
- "New Torrent Announcement: <PC :: Iso> Name:'debian live 10 6 0 amd64 standard iso' uploaded by 'Anonymous' freeleech - http://www.tracker01.test/torrent/000000"
|
||||
pattern: New Torrent Announcement:\s*<([^>]*)>\s*Name:'(.*)' uploaded by '([^']*)'\s*(freeleech)*\s*-\s*(https?\:\/\/[^\/]+\/)torrent\/(\d+)
|
||||
vars:
|
||||
- category
|
||||
- torrentName
|
||||
- uploader
|
||||
- freeleech
|
||||
- baseUrl
|
||||
- torrentId
|
||||
|
||||
match:
|
||||
torrenturl: "{{ .baseUrl }}rss/download/{{ .torrentId }}/{{ .rsskey }}/{{ .torrentName }}.torrent"
|
||||
encode:
|
||||
- torrentName
|
||||
|
||||
|
|
@ -19,7 +19,7 @@ settings:
|
|||
help: "Go to https://www.trancetraffic.com/links.php, click on RSS Feed and copy your passkey from the url."
|
||||
|
||||
irc:
|
||||
network: P2P-NET
|
||||
network: P2P-Network
|
||||
server: irc.p2p-network.net
|
||||
port: 6697
|
||||
tls: true
|
||||
|
@ -35,7 +35,7 @@ irc:
|
|||
help: NickServ account. Make sure to group your user and bot. Eg. user|autodl
|
||||
- name: nickserv.password
|
||||
type: secret
|
||||
required: false
|
||||
required: true
|
||||
label: NickServ Password
|
||||
help: NickServ password
|
||||
|
||||
|
|
|
@ -243,6 +243,16 @@ func (s *service) addIndexer(indexer domain.Indexer) error {
|
|||
|
||||
s.mapIRCIndexerLookup(indexer.Identifier, *indexerDefinition)
|
||||
|
||||
// add to irc server lookup table
|
||||
s.mapIRCServerDefinitionLookup(indexerDefinition.IRC.Server, *indexerDefinition)
|
||||
|
||||
// check if it has api and add to api service
|
||||
if indexerDefinition.Enabled && indexerDefinition.HasApi() {
|
||||
if err := s.apiService.AddClient(indexerDefinition.Identifier, indexerDefinition.SettingsMap); err != nil {
|
||||
log.Error().Stack().Err(err).Msgf("indexer.start: could not init api client for: '%v'", indexer.Identifier)
|
||||
}
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue