68 lines
2.4 KiB
Python
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]
|