Add auto-check forum
This commit is contained in:
parent
7c1c9802c6
commit
67f05c4881
61
check_new.py
Normal file
61
check_new.py
Normal file
@ -0,0 +1,61 @@
|
||||
import requests
|
||||
from bs4 import BeautifulSoup
|
||||
import telebot
|
||||
from time import sleep
|
||||
|
||||
###### WORK WITH FILES #####
|
||||
import pickle
|
||||
|
||||
def write(a_list):
|
||||
with open('list', 'wb') as fp:
|
||||
pickle.dump(a_list, fp)
|
||||
|
||||
def read():
|
||||
with open('list', 'rb') as fp:
|
||||
a_list = pickle.load(fp)
|
||||
return a_list
|
||||
############################
|
||||
|
||||
def check(bot, own_id):
|
||||
response = requests.get("https://ss14top.404.mn/")
|
||||
soup = BeautifulSoup(response.content, 'html.parser')
|
||||
|
||||
topics = []
|
||||
for link in soup.find_all("a"):
|
||||
link = str(link.get("href"))
|
||||
if "topic" in link:
|
||||
topics.append(link)
|
||||
|
||||
# Get only link to review below post
|
||||
links = []
|
||||
nums = [*range(1,15)]
|
||||
for el in topics:
|
||||
check = el[:el.rfind("/")]
|
||||
if check not in links and check != "/topic/8/важное":
|
||||
links.append(check)
|
||||
|
||||
|
||||
############## CHECK IF MESSAGE NEW ############
|
||||
|
||||
for i in links:
|
||||
response = requests.get(f"https://ss14top.404.mn/{i}")
|
||||
soup = BeautifulSoup(response.content, 'html.parser')
|
||||
|
||||
# Add reviews and remove post (0)
|
||||
reviews = []
|
||||
for review in soup.find_all("div", class_="content"):
|
||||
reviews.append(review.get_text())
|
||||
reviews.pop(0)
|
||||
|
||||
# Check if new rev
|
||||
old_reviews = read()
|
||||
for rev in reviews:
|
||||
if rev not in old_reviews:
|
||||
new = f"{telebot.formatting.hcode(f'https://ss14top.404.mn/{i}')} \n\n{rev}"
|
||||
bot.send_message(own_id, new, parse_mode="HTML")
|
||||
|
||||
# Write to reviews
|
||||
reviews = old_reviews + reviews
|
||||
write(reviews)
|
||||
sleep(1)
|
||||
|
13
fastreg.py
13
fastreg.py
@ -1,4 +1,3 @@
|
||||
|
||||
import telebot
|
||||
from telebot import types,util
|
||||
|
||||
@ -69,5 +68,17 @@ def echo_message(message):
|
||||
bot.reply_to(message, "Ваши данные отправлены на модерацию.\nПодождите, пожалуйста.")
|
||||
|
||||
|
||||
# Check for new message on forum
|
||||
from threading import Thread
|
||||
from time import sleep
|
||||
from check_new import *
|
||||
|
||||
def check_forum():
|
||||
global own_id
|
||||
while True:
|
||||
check(bot, own_id)
|
||||
sleep(60)
|
||||
th = Thread(target=check_forum)
|
||||
th.start()
|
||||
|
||||
bot.infinity_polling()
|
||||
|
Loading…
Reference in New Issue
Block a user