Added 7 sites, implemented integration with Marple, docs update (#1881)

* Added 5 sites, implemented integration with Marple

* Added 2 more sites, updated docs

* Updated sites list
This commit is contained in:
Soxoj
2024-11-25 14:41:34 +01:00
committed by GitHub
parent 54b864f167
commit 86d51bced0
5 changed files with 189 additions and 14 deletions
+101
View File
@@ -34808,6 +34808,107 @@
"tags": [
"crypto"
]
},
"sst.hiberworld.com": {
"checkType": "message",
"absenceStrs": [
"User not found"
],
"presenceStrs": [
"email",
"birthdate",
"role",
"Profile Image",
"User"
],
"url": "https://sst.hiberworld.com/user/{username}",
"urlMain": "https://sst.hiberworld.com/user/{username}",
"usernameClaimed": "pixelpwnz",
"usernameUnclaimed": "foxefwvigz"
},
"DeepDreamGenerator": {
"checkType": "message",
"absenceStrs": [
"Page not found"
],
"presenseStrs": [
"user-name",
"profile-cover",
"user-info"
],
"url": "https://deepdreamgenerator.com/u/{username}",
"urlMain": "https://deepdreamgenerator.com",
"usernameClaimed": "sparkles99",
"usernameUnclaimed": "lyazybfqoh"
},
"PeriscopeTv": {
"checkType": "message",
"absenceStrs": [
"error-fill"
],
"presenseStrs": [
"profile",
"ProfileAuthor",
"ProfileUsername"
],
"url": "https://www.pscp.tv/{username}",
"urlMain": "https://www.pscp.tv",
"usernameClaimed": "moonlitraven",
"usernameUnclaimed": "higfjqmiez"
},
"fanscout.com": {
"checkType": "message",
"absenceStrs": [
"This page is under construction"
],
"presenseStrs": [
"birthday cake"
],
"url": "https://fanscout.com/{username}",
"urlMain": "https://fanscout.com",
"usernameClaimed": "moonlitraven",
"usernameUnclaimed": "sicuoozvul"
},
"app.samsungfood.com": {
"checkType": "message",
"absenceStrs": [
">User not found</h1></div>"
],
"presenseStrs": [
"alternateName",
"totalTime"
],
"url": "https://app.samsungfood.com/u/{username}",
"urlMain": "https://app.samsungfood.com",
"usernameClaimed": "moonlitraven",
"usernameUnclaimed": "onpigjbowo"
},
"DimensionalMe": {
"checkType": "message",
"absenceStrs": [
"error_main_"
],
"presenseStrs": [
"userName",
"publicProfile"
],
"url": "https://www.dimensional.me/{username}",
"urlMain": "https://www.dimensional.me",
"usernameClaimed": "sparkles99",
"usernameUnclaimed": "hbtybxpuon"
},
"www.portal-pisarski.pl": {
"checkType": "message",
"absenceStrs": [
"obrazki/404.png"
],
"presenseStrs": [
"profil/"
],
"url": "https://www.portal-pisarski.pl/profil/{username}",
"urlMain": "https://www.portal-pisarski.pl",
"usernameClaimed": "sparkles99",
"usernameUnclaimed": "hlwifvxnqw"
}
},
"engines": {
+65
View File
@@ -6,6 +6,7 @@ from xml.etree import ElementTree
from aiohttp import TCPConnector, ClientSession
import requests
import cloudscraper
from colorama import Fore, Style
from .activation import import_aiohttp_cookies
from .checking import maigret
@@ -334,6 +335,70 @@ class Submitter:
site = MaigretSite(url_mainpage.split("/")[-1], site_data)
return site
async def add_site(self, site):
sem = asyncio.Semaphore(1)
print(f"{Fore.BLUE}{Style.BRIGHT}[*] Adding site {site.name}, let's check it...{Style.RESET_ALL}")
print(site.json)
result = await self.site_self_check(site, sem)
if result["disabled"]:
print(
f"Checks failed for {site.name}, please, verify them manually."
)
return {
"valid": False,
"reason": "checks_failed",
}
while True:
print("\nAvailable fields to edit:")
editable_fields = {
'1': 'name',
'2': 'tags',
'3': 'url',
'4': 'url_main',
'5': 'username_claimed',
'6': 'username_unclaimed',
'7': 'presense_strs',
'8': 'absence_strs',
}
for num, field in editable_fields.items():
current_value = getattr(site, field)
print(f"{num}. {field} (current: {current_value})")
print("0. finish editing")
print("10. reject and block domain")
choice = input("\nSelect field number to edit (0-8): ").strip()
if choice == '0':
break
if choice == '10':
return {
"valid": False,
"reason": "manual block",
}
if choice in editable_fields:
field = editable_fields[choice]
current_value = getattr(site, field)
new_value = input(f"Enter new value for {field} (current: {current_value}): ").strip()
if field in ['tags', 'presense_strs', 'absence_strs']:
new_value = list(map(str.strip, new_value.split(',')))
if new_value:
setattr(site, field, new_value)
print(f"Updated {field} to: {new_value}")
self.logger.info(site.json)
self.db.update_site(site)
return {
"valid": True,
}
async def dialog(self, url_exists, cookie_file):
domain_raw = self.URL_RE.sub("", url_exists).strip().strip("/")
domain_raw = domain_raw.split("/")[0]