master
parent
701dc5bc46
commit
9f21a1abae
4 changed files with 13 additions and 113 deletions
@ -1,19 +0,0 @@ |
|||||||
|
|
||||||
FROM python:3.8 |
|
||||||
|
|
||||||
WORKDIR / |
|
||||||
|
|
||||||
COPY requirements.txt . |
|
||||||
|
|
||||||
RUN pip install -r requirements.txt |
|
||||||
|
|
||||||
ADD . . |
|
||||||
|
|
||||||
ENTRYPOINT [ "python", "facebook/__main__.py", "-p free" ] |
|
||||||
|
|
||||||
CMD ["",""] |
|
||||||
|
|
||||||
# BUILD: |
|
||||||
# docker buildx create --use |
|
||||||
#docker buildx build --file docker/free/Dockerfile --platform linux/arm -t l3224/fb-scraper:free --push . |
|
||||||
|
|
||||||
@ -1,74 +0,0 @@ |
|||||||
from datetime import datetime |
|
||||||
from getpass import getpass |
|
||||||
from time import sleep |
|
||||||
|
|
||||||
from arango import ArangoClient |
|
||||||
from json2html import json2html |
|
||||||
|
|
||||||
|
|
||||||
def now(): |
|
||||||
""" Returns current date and time as string""" |
|
||||||
return datetime.now().strftime("%Y-%m-%d_%H:%M:%S") |
|
||||||
|
|
||||||
def write_stats(db, continuous=False): |
|
||||||
while True: |
|
||||||
d = {} |
|
||||||
for col in db.collections(): |
|
||||||
if not col['system']: |
|
||||||
d[col['name']] = db.collection(col['name']).count() |
|
||||||
del d['stats'] |
|
||||||
#d['time'] = now() |
|
||||||
cursor = db.aql.execute( |
|
||||||
""" |
|
||||||
FOR doc IN members |
|
||||||
FILTER doc.checked == true |
|
||||||
COLLECT WITH COUNT INTO length |
|
||||||
RETURN length |
|
||||||
""" |
|
||||||
) |
|
||||||
d['checked_members'] = cursor.next() |
|
||||||
|
|
||||||
|
|
||||||
# Hur många konton per säljare som finns kvar |
|
||||||
cursor = db.aql.execute( |
|
||||||
''' |
|
||||||
for doc in profiles |
|
||||||
filter has(doc, "vendor") |
|
||||||
COLLECT vendor = doc.vendor WITH COUNT INTO length |
|
||||||
RETURN { |
|
||||||
"vendor" : vendor, |
|
||||||
"active" : length |
|
||||||
} |
|
||||||
''') |
|
||||||
d['active_vendors'] = [doc for doc in cursor] |
|
||||||
|
|
||||||
d['_key'] = now()[:13] |
|
||||||
db.insert_document( "stats", d, overwrite=True) |
|
||||||
|
|
||||||
# Skriv en html-fil |
|
||||||
with open('website/fb-webbapp/stats.html', 'a+') as html: |
|
||||||
html.truncate(0) |
|
||||||
html.write('<!DOCTYPE html> <br>') |
|
||||||
|
|
||||||
html.write(json2html.convert(json = d)) |
|
||||||
|
|
||||||
# Sov för att fortsätta senare |
|
||||||
if continuous: |
|
||||||
sleep(86400) |
|
||||||
else: |
|
||||||
break |
|
||||||
|
|
||||||
# Info för arangodb |
|
||||||
user_arango = "Stats" |
|
||||||
db_arango = "facebook" |
|
||||||
host_arango = "http://192.168.0.4:8529" |
|
||||||
|
|
||||||
# Starta koppling till arangodb |
|
||||||
# Avkryptera lösen till arango |
|
||||||
pwd = getpass(f'Arangolösenord för {user_arango}:').strip() |
|
||||||
|
|
||||||
db = ArangoClient(hosts=host_arango).db( |
|
||||||
db_arango, username=user_arango, password=pwd |
|
||||||
) |
|
||||||
|
|
||||||
write_stats(db, continuous=True) |
|
||||||
@ -1,21 +1,12 @@ |
|||||||
beautifulsoup4==4.9.3 |
certifi==2021.5.30 |
||||||
certifi==2020.12.5 |
charset-normalizer==2.0.4 |
||||||
cffi==1.14.5 |
idna==3.2 |
||||||
chardet==4.0.0 |
packaging==21.0 |
||||||
idna==2.10 |
PyJWT==2.1.0 |
||||||
lxml |
pyparsing==2.4.7 |
||||||
pycparser==2.20 |
python-arango==7.2.0 |
||||||
PyJWT==2.0.1 |
requests==2.26.0 |
||||||
#PyNaCl==1.4.0 |
|
||||||
PySocks==1.7.1 |
|
||||||
python-arango==7.1.0 |
|
||||||
requests==2.25.1 |
|
||||||
requests-toolbelt==0.9.1 |
requests-toolbelt==0.9.1 |
||||||
robobrowser==0.5.3 |
setuptools-scm==6.3.1 |
||||||
setuptools-scm==5.0.2 |
tomli==1.2.1 |
||||||
six==1.15.0 |
urllib3==1.26.6 |
||||||
soupsieve==2.2 |
|
||||||
toml==0.10.2 |
|
||||||
urllib3==1.26.3 |
|
||||||
Werkzeug==1.0.1 |
|
||||||
json2html |
|
||||||
|
|||||||
Loading…
Reference in new issue