allow user to get reports

This commit is contained in:
red 2025-08-05 11:56:04 +01:00
parent 7aa517ac25
commit b63e0e4a06
8 changed files with 100 additions and 5 deletions

7
.gitignore vendored
View File

@ -3,11 +3,14 @@
lib64
lib
includes
.env
data/.env
pyvenv.cfg
__pycache__
bin
logs
venv
.env
data/.env
.env.dev
filter.txt
filter-dev.txt
tracked-users.txt

1
bot.py
View File

@ -2,7 +2,6 @@
import asyncio
from datetime import datetime
import functions.get_newest_count
from functions.send_message import send_message
from functions.scan_posts import scan_posts
from functions.check_chat import check_chat
from functions.check_users import check_users

8
classes/report.py Normal file
View File

@ -0,0 +1,8 @@
import requests
import datetime
import var
class Report():
def __init__(self, report_id):
self.report_id = report_id
# maybe later thepdore?

View File

@ -8,6 +8,7 @@ from functions.send_message import send_message
from functions.roll_token import roll_token
from beloved_logger import logger
from functions.update_display_name import update_display_name
from functions.get_reports import get_reports
async def get_chat_messages():
@ -268,6 +269,9 @@ async def check_chat():
elif "@automod imagescanning disablefilter" in x['text']:
await send_message("Not yet implemented")
elif "@automod reports" in x['text']:
await send_message(await get_reports())
else:
await send_message("Invalid command given")

67
functions/get_reports.py Normal file
View File

@ -0,0 +1,67 @@
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
logger.info(reports_string[0:700])

14
readme.md Normal file
View File

@ -0,0 +1,14 @@
```
SITE=
COOKIE_NAME=
COOKIE_VALUE=
STARTUP_SESSION_VALUE=
AWS_REGION=
USER_NUMBER=
CHAT_NUMBER=
FILTER_FILE=data/filter.txt
LABELS_FILE=data/labels.json
USERS_FILE=data/users-tracked.txt
CURRENT_USER_ID=
```

View File

@ -1,5 +1,5 @@
boto3~=1.28.39
requests~=2.31.0
requests
python-dotenv~=1.0.0
websockets~=11.0.3
beautifulsoup4~=4.12.2

2
var.py
View File

@ -5,7 +5,7 @@ from datetime import datetime
from functions.get_filters_from_text import get_filters_from_text
load_dotenv('data/.env')
load_dotenv('./data/.env')
site = os.getenv("SITE")
cookie_name = os.getenv("COOKIE_NAME")