Deleter Temlpate
This commit is contained in:
parent
10df69242d
commit
150472a2de
73
handlers/post_cleaner
Normal file
73
handlers/post_cleaner
Normal file
@ -0,0 +1,73 @@
|
||||
import datetime
|
||||
from arango import ArangoClient
|
||||
from create_bot import bot
|
||||
|
||||
def get_remove_collection():
|
||||
arango_client = ArangoClient(hosts=CONFIG['databaso']['host'] )
|
||||
pipisa_db = arango_client.db(
|
||||
CONFIG['databaso']['base'],
|
||||
username=CONFIG['databaso']['user'],
|
||||
password=CONFIG['databaso']['pass']
|
||||
)
|
||||
remove_collection = pipisa_db.collection(CONFIG['databaso']['deleteCollection'])
|
||||
|
||||
return remove_collection
|
||||
|
||||
|
||||
|
||||
def time_writer(userID: int, messageID:int, chatID:int):
|
||||
#write last reply post ID to db
|
||||
remove_collection = get_remove_collection
|
||||
message_time = datetime.datetime.now()
|
||||
|
||||
try:
|
||||
lastReply = {
|
||||
'user_id': userID,
|
||||
'datetimes': message_time,
|
||||
'chat_id': chatID,
|
||||
'messageID': messageID
|
||||
}
|
||||
|
||||
metadata = remove_collection.insert(lastReply, overwrite_mode='update')
|
||||
|
||||
except Exception as lastWriteErr:
|
||||
print(lastWriteErr)
|
||||
|
||||
return 0
|
||||
|
||||
async def cleaner(userID:int, chatID:int):
|
||||
#remove last reply and check posts older than 5 minutes to delete
|
||||
remove_collection = get_remove_collection
|
||||
try:
|
||||
clean_candidate = remove_collection.find(
|
||||
{
|
||||
'user_id': userID,
|
||||
'chat_id': chatID
|
||||
},
|
||||
skip=0, limit=1000)
|
||||
|
||||
prev_enl_message_id = clean_candidate["messageID"]
|
||||
await bot.delete_message(prev_enl_message_id)
|
||||
|
||||
|
||||
current_time = datetime.datetime.now()
|
||||
too_old = current_time-datetime.timedelta(min=5)
|
||||
old_posts = remove_collection.find(
|
||||
{
|
||||
'chat_id': chatID,
|
||||
},
|
||||
skip=0, limit=1000)
|
||||
|
||||
for old_Post in old_posts:
|
||||
if old_Post["datetimes"] <= too_old:
|
||||
to_delete_ID = old_Post["messageID"]
|
||||
await bot.delete_message(to_delete_ID)
|
||||
|
||||
#TODO: remove deleted posts ID's from DB
|
||||
|
||||
|
||||
except Exception as autoCleanErr:
|
||||
print(autoCleanErr)
|
||||
|
||||
return 0
|
||||
|
Loading…
Reference in New Issue
Block a user