su-automod/functions/get_reports.py

68 lines
2.4 KiB
Python

import asyncio
from bs4 import BeautifulSoup
import requests
import var
from beloved_logger import logger
from functions.roll_token import roll_token
async def get_reports():
# because we can't get the total amount of reports,
# we have to go thru each page .
are_there_reports_hello_hi_hey = True
page=1
reports_string = ""
await roll_token()
cookies = {
var.cookie_name: var.cookie_value,
'sketchers_united_session': var.session,
'XSRF-TOKEN': var.xsrf_token
}
headers = {
'User-Agent': 'automod',
'Accept': '*/*',
'X-CSRF-TOKEN': var.csrf_token,
'X-XSRF-TOKEN': var.xsrf_token
}
while are_there_reports_hello_hi_hey:
response = requests.get(f"https://{var.site}/admin/reports?page={page}",
headers=headers, cookies=cookies)
page += 1
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
table = soup.find('table', class_='w-100')
if table:
are_there_reports_hello_hi_hey = True
for tr in table.find_all('tr'):
tds = tr.find_all('td')
if len(tds) >= 2:
if tds[2].get_text(strip=True) == 'inappropriatesensitive':
pass
elif tds[2].get_text(strip=True) == 'inappropriatepersonal':
pass
elif tds[2].get_text(strip=True) == 'copyrightother':
pass
elif tds[2].get_text(strip=True) == 'copyrightmine':
pass
elif tds[2].get_text(strip=True) == 'spam':
pass
else:
reports_string += (
f"{tds[0].find('a')['href']} - "
f"{tds[0].get_text(strip=True)} - "
f"{tds[1].get_text(strip=True)} - "
f"{tds[2].get_text(strip=True)}\n"
)
else:
are_there_reports_hello_hi_hey = False
else:
logger.info(f"An error occurred getting the reports for reason {response.status_code}")
return False
return reports_string[0:700]