logic AND/OR for tags

This commit is contained in:
iou1name 2018-05-17 13:28:57 -04:00
parent cb68972816
commit c61c599f93
2 changed files with 8 additions and 5 deletions

View File

@ -18,7 +18,7 @@ Python modules: `requests, twisted`
`auth_msg` - The message to send to the `tracker_bot` to authenticate with and access the announce channel. It's up to you figure this out.
`watch_dir` - The directory to save torrents to.
`cookies_txt` - The path to where your session cookie(s) are stored. Should be in Netscape format.
`tags` - Comma-delineated list of tags to look for in each announce message. The script is just performing simple string comparisons on the entire message, so the 'tag' can be any substring appearing in the announce message. Note that this is essentially an OR operation. I'm too lazy to get more complex than that.
`tags` - Comma-delineated list of tags to look for in each announce message. The script is just performing simple string comparisons on the entire message, so the 'tag' can be any substring appearing in the announce message. Tag inside of brackets are AND'd together, tag groups are then OR'd together. In the example below, announce messages with ['Manga' AND 'English' AND 'Archived'] OR 'Dual Language' OR 'Softsubs' will be matched.
### Example config.cfg
```
@ -31,7 +31,7 @@ tracker_bot = Udon
auth_msg = BOT #oppaitime-announce iou1name SpaghettiIsAFaggot
watch_dir = /home/iou1name/torrent/oppaitime/Watch/
cookies_txt = cookies.txt
tags = English,Dual Language
tags = [Manga,English,Archived],[Dual Language],[Softsubs]
[redacted]
server = irc.scratch-network.net
@ -42,5 +42,5 @@ tracker_bot = Drone
auth_msg = enter #red-announce iou1name TheyllAlwaysBePTHToMe
watch_dir = /home/iou1name/torrent/passtheheadphones/Watch/
cookies_txt = cookies.txt
tags = rock,metal
tags = [rock],[metal]
```

View File

@ -27,7 +27,8 @@ class OppaiBot(irc.IRCClient):
self.cj.load()
self.watch_dir = self.config["watch_dir"]
self.tags = self.config["tags"].split(",")
self.tags = re.findall(r"\[(.+?)\]", self.config["tags"])
self.tags = [tag.split(",") for tag in self.tags]
def save_torrent(self, url, directory):
@ -51,7 +52,9 @@ class OppaiBot(irc.IRCClient):
or users alike.
"""
# More advanced logic is left as an exercise to the reader.
tags_in_msg = [tag in message for tag in self.tags]
tags_in_msg = []
for tag_group in self.tags:
tags_in_msg.append(all([tag in msg for tag in tag_group]))
if any(tags_in_msg):
url = re.findall(r"(http.+?) ", message)[1]
self.save_torrent(url, self.watch_dir)