mirror of
https://github.com/simon987/od-database.git
synced 2025-04-20 10:56:47 +00:00
Minimal configuration for reddit comment callback
This commit is contained in:
parent
1ff1e039f5
commit
458641654c
9
app.py
9
app.py
@ -13,6 +13,7 @@ import config
|
||||
from flask_caching import Cache
|
||||
from tasks import TaskManager, Task, TaskResult
|
||||
from search.search import ElasticSearchEngine
|
||||
from callbacks import PostCrawlCallbackFactory
|
||||
|
||||
app = Flask(__name__)
|
||||
if config.CAPTCHA_SUBMIT or config.CAPTCHA_LOGIN:
|
||||
@ -572,7 +573,11 @@ def api_complete_task():
|
||||
if filename and os.path.exists(filename):
|
||||
os.remove(filename)
|
||||
|
||||
# TODO: handle callback here
|
||||
# Handle task callback
|
||||
callback = PostCrawlCallbackFactory.get_callback(task)
|
||||
if callback:
|
||||
callback.run(task_result, searchEngine)
|
||||
|
||||
return "Successfully logged task result and indexed files"
|
||||
|
||||
else:
|
||||
@ -666,7 +671,7 @@ def api_task_enqueue():
|
||||
request.json["url"],
|
||||
request.json["priority"],
|
||||
request.json["callback_type"],
|
||||
request.json["callback_args"]
|
||||
json.dumps(request.json["callback_args"])
|
||||
)
|
||||
taskManager.queue_task(task)
|
||||
return ""
|
||||
|
27
callbacks.py
27
callbacks.py
@ -1,6 +1,7 @@
|
||||
from tasks import Task
|
||||
from crawl_server.reddit_bot import RedditBot
|
||||
from tasks import Task, TaskResult
|
||||
from reddit_bot import RedditBot
|
||||
import praw
|
||||
from search.search import SearchEngine
|
||||
|
||||
|
||||
class PostCrawlCallback:
|
||||
@ -8,7 +9,7 @@ class PostCrawlCallback:
|
||||
def __init__(self, task: Task):
|
||||
self.task = task
|
||||
|
||||
def run(self):
|
||||
def run(self, task_result: TaskResult, search: SearchEngine):
|
||||
raise NotImplementedError
|
||||
|
||||
|
||||
@ -36,26 +37,30 @@ class RedditCallback(PostCrawlCallback):
|
||||
user_agent='github.com/simon987/od-database (by /u/Hexahedr_n)')
|
||||
self.reddit_bot = RedditBot("crawled.txt", reddit)
|
||||
|
||||
def run(self):
|
||||
def run(self, task_result: TaskResult, search: SearchEngine):
|
||||
raise NotImplementedError
|
||||
|
||||
|
||||
class RedditPostCallback(RedditCallback):
|
||||
|
||||
def run(self):
|
||||
def run(self, task_result: TaskResult, search: SearchEngine):
|
||||
print("Reddit post callback for task " + str(self.task))
|
||||
pass
|
||||
|
||||
|
||||
class RedditCommentCallback(RedditCallback):
|
||||
|
||||
def run(self):
|
||||
print("Reddit comment callback for task " + str(self.task))
|
||||
pass
|
||||
def run(self, task_result: TaskResult, search: SearchEngine):
|
||||
|
||||
comment_id = self.task.callback_args["comment_id"]
|
||||
print("Replying to comment " + comment_id)
|
||||
|
||||
stats = search.get_stats(self.task.website_id)
|
||||
message = self.reddit_bot.get_comment(stats, self.task.website_id)
|
||||
print(message)
|
||||
self.reddit_bot.reply(self.reddit_bot.reddit.comment(comment_id), message)
|
||||
|
||||
|
||||
class DiscordCallback(PostCrawlCallback):
|
||||
|
||||
def run(self):
|
||||
def run(self, task_result: TaskResult, search: SearchEngine):
|
||||
print("Discord callback for task " + str(self.task))
|
||||
pass
|
||||
|
@ -54,14 +54,13 @@ class RedditBot:
|
||||
|
||||
@staticmethod
|
||||
def get_comment(stats: dict, website_id, message: str = ""):
|
||||
comment = message + " \n" if len(message) > 0 else ""
|
||||
comment = message + " \n" if message else ""
|
||||
|
||||
for stat in stats:
|
||||
comment += stat + " \n" if len(stat) > 0 else ""
|
||||
comment += RedditBot.format_stats(stats[stat])
|
||||
comment += RedditBot.format_stats(stats)
|
||||
|
||||
comment += "[Full Report](https://od-database.simon987.net/website/" + str(website_id) + "/)"
|
||||
comment += " | [Link list](https://od-database.simon987.net/website/" + str(website_id) + "/links) \n"
|
||||
comment += "[Full Report](https://od-db.the-eye.eu/website/" + str(website_id) + "/)"
|
||||
comment += " | [Link list](https://od-db.the-eye.eu/website/" + str(website_id) + "/links)"
|
||||
comment += " | [Source](https://github.com/simon987/od-database) \n"
|
||||
comment += "*** \n"
|
||||
comment += RedditBot.bottom_line
|
||||
|
||||
@ -74,7 +73,7 @@ class RedditBot:
|
||||
result += "File types | Count | Total Size\n"
|
||||
result += ":-- | :-- | :-- \n"
|
||||
counter = 0
|
||||
for mime in stats["mime_stats"]:
|
||||
for mime in stats["ext_stats"]:
|
||||
result += mime[2]
|
||||
result += " | " + str(mime[1])
|
||||
result += " | " + humanfriendly.format_size(mime[0]) + " \n"
|
Loading…
x
Reference in New Issue
Block a user