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==2020.12.5 |
||||
cffi==1.14.5 |
||||
chardet==4.0.0 |
||||
idna==2.10 |
||||
lxml |
||||
pycparser==2.20 |
||||
PyJWT==2.0.1 |
||||
#PyNaCl==1.4.0 |
||||
PySocks==1.7.1 |
||||
python-arango==7.1.0 |
||||
requests==2.25.1 |
||||
certifi==2021.5.30 |
||||
charset-normalizer==2.0.4 |
||||
idna==3.2 |
||||
packaging==21.0 |
||||
PyJWT==2.1.0 |
||||
pyparsing==2.4.7 |
||||
python-arango==7.2.0 |
||||
requests==2.26.0 |
||||
requests-toolbelt==0.9.1 |
||||
robobrowser==0.5.3 |
||||
setuptools-scm==5.0.2 |
||||
six==1.15.0 |
||||
soupsieve==2.2 |
||||
toml==0.10.2 |
||||
urllib3==1.26.3 |
||||
Werkzeug==1.0.1 |
||||
json2html |
||||
setuptools-scm==6.3.1 |
||||
tomli==1.2.1 |
||||
urllib3==1.26.6 |
||||
|
||||
Loading…
Reference in new issue