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]