Lasse Server 4 years ago
parent 701dc5bc46
commit 9f21a1abae
  1. 2
      .gitignore
  2. 19
      docker/free/Dockerfile
  3. 74
      facebook/stats.py
  4. 31
      requirements.txt

2
.gitignore vendored

@ -14,5 +14,7 @@ password_arango.txt
facebook/mrkoll.
*.pyc
/facebook
/docker
!/docker/*.py
!/facebook/*.py
*.sqlite3

@ -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…
Cancel
Save