diff --git a/.gitignore b/.gitignore index 1670072..a46f46d 100755 --- a/.gitignore +++ b/.gitignore @@ -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 \ No newline at end of file diff --git a/bot.py b/bot.py index 64fd8d9..a2de1ab 100755 --- a/bot.py +++ b/bot.py @@ -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 diff --git a/classes/report.py b/classes/report.py new file mode 100644 index 0000000..d4f0c63 --- /dev/null +++ b/classes/report.py @@ -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? \ No newline at end of file diff --git a/functions/check_chat.py b/functions/check_chat.py index f27a06c..a85a6df 100755 --- a/functions/check_chat.py +++ b/functions/check_chat.py @@ -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") diff --git a/functions/get_reports.py b/functions/get_reports.py new file mode 100644 index 0000000..70d64ca --- /dev/null +++ b/functions/get_reports.py @@ -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]) \ No newline at end of file diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..49f1298 --- /dev/null +++ b/readme.md @@ -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= +``` \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index dc7074d..b973c10 100755 --- a/requirements.txt +++ b/requirements.txt @@ -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 diff --git a/var.py b/var.py index 5202c91..7946899 100755 --- a/var.py +++ b/var.py @@ -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")