protected chats & tags

This commit is contained in:
Tomáš Mládek 2019-05-18 14:28:23 +02:00
parent a9d5967996
commit 6d10fae743

View file

@ -11,6 +11,7 @@ from configparser import ConfigParser
from datetime import datetime, timedelta from datetime import datetime, timedelta
from glob import glob from glob import glob
from operator import itemgetter from operator import itemgetter
from random import choice
import acoustid import acoustid
import filetype import filetype
@ -41,6 +42,7 @@ def datestr(date):
class DelojzaBot: class DelojzaBot:
def __init__(self, tg_api_key, out_dir, tmp_dir=None, def __init__(self, tg_api_key, out_dir, tmp_dir=None,
protected_chats=None, protected_tags=None,
acoustid_key=None, tumblr_name=None, tumblr_keys=None, markov=None): acoustid_key=None, tumblr_name=None, tumblr_keys=None, markov=None):
self.logger = logging.getLogger("delojza") self.logger = logging.getLogger("delojza")
@ -74,6 +76,9 @@ class DelojzaBot:
self.tumblr_name = tumblr_name self.tumblr_name = tumblr_name
self.tumblr_client = pytumblr.TumblrRestClient(*tumblr_keys) self.tumblr_client = pytumblr.TumblrRestClient(*tumblr_keys)
self.protected_chats = protected_chats or []
self.protected_tags = protected_tags or []
self.last_downloaded = None self.last_downloaded = None
self.last_hashtags = None self.last_hashtags = None
@ -256,6 +261,13 @@ class DelojzaBot:
self.logger.info("Ignoring %s due to no hashtag present..." % urls) self.logger.info("Ignoring %s due to no hashtag present..." % urls)
return return
if any(hashtag in self.protected_tags for hashtag in hashtags):
if message.chat.title not in self.protected_chats:
self.logger.info("Ignoring {} in chat {} due to protected hashtags: {}..."
.format(urls, message.chat.title, hashtags))
message.reply_text(choice(["No.", "Nein", "Nope", ":(", "Error: Cannot.", "Fail."]))
return
self.last_hashtags = None self.last_hashtags = None
self.logger.info("Downloading %s under '%s'" % (urls, "/".join(hashtags))) self.logger.info("Downloading %s under '%s'" % (urls, "/".join(hashtags)))
@ -503,6 +515,8 @@ if __name__ == '__main__':
delojza = DelojzaBot(config.get('delojza', 'tg_api_key'), delojza = DelojzaBot(config.get('delojza', 'tg_api_key'),
config.get('delojza', 'OUT_DIR', fallback=os.path.join(_DIR_, "out")), config.get('delojza', 'OUT_DIR', fallback=os.path.join(_DIR_, "out")),
tmp_dir=config.get('delojza', 'tmp_dir', fallback=tempfile.gettempdir()), tmp_dir=config.get('delojza', 'tmp_dir', fallback=tempfile.gettempdir()),
protected_chats=config.get('delojza', 'protected_chats').split(";"),
protected_tags=config.get('delojza', 'protected_tags').split(";"),
acoustid_key=config.get('delojza', 'acoustid_api_key'), acoustid_key=config.get('delojza', 'acoustid_api_key'),
tumblr_name=config.get('tumblr', 'blog_name'), tumblr_name=config.get('tumblr', 'blog_name'),
tumblr_keys=(config.get('tumblr', 'consumer_key'), tumblr_keys=(config.get('tumblr', 'consumer_key'),