Browse Source

Merge pull request #49 from ConnorSkees/logging

Logging
pull/50/head
Wesley Kerfoot 6 years ago
committed by GitHub
parent
commit
8befcfd3be
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      README.md
  2. 5
      deletefb/__main__.py
  3. 0
      deletefb/deletefb.log
  4. 13
      deletefb/deletefb.py
  5. 62
      deletefb/logging_conf.json
  6. 19
      deletefb/tools/common.py
  7. 5
      deletefb/tools/likes.py

3
README.md

@ -22,8 +22,7 @@ You have several options to run it.
1) Install from PyPI with `pip install --user delete-facebook-posts` 1) Install from PyPI with `pip install --user delete-facebook-posts`
2) Clone this repo and run `pip install --user .` or do `pip install --user 2) Clone this repo and run `pip install --user .` or do `pip install --user
git+https://github.com/weskerfoot/DeleteFB.git` git+https://github.com/weskerfoot/DeleteFB.git`
3) Set up a Python virtualenv, activate it, and run `pip install -r 3) Set up a Python virtualenv, activate it, and run `pip install -r requirements.txt`, then you can just run `python deletefb` in the DeleteFB directory.
requirements.txt`, then you can just run `python -m deletefb.deletefb.py` in the project directory, as you would if you had installed it from PyPI.
## How To Use It ## How To Use It

5
deletefb/__main__.py

@ -0,0 +1,5 @@
#!/usr/bin/env python
import deletefb
if __name__ == "__main__":
deletefb.run_delete()

0
deletefb/deletefb.log

13
deletefb/deletefb.py

@ -2,12 +2,17 @@
import argparse import argparse
import getpass import getpass
import sys import json
import os import os
import sys
from tools.common import logger
from tools.login import login
from tools.wall import delete_posts
from tools.likes import unlike_pages
LOG = logger("deletefb")
from .tools.login import login
from .tools.wall import delete_posts
from .tools.likes import unlike_pages
def run_delete(): def run_delete():
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()

62
deletefb/logging_conf.json

@ -0,0 +1,62 @@
{
"logging": {
"version": 1,
"disable_existing_loggers": true,
"formatters": {
"brief": {
"class": "logging.Formatter",
"style": "{",
"datefmt": "%H:%M:%S",
"format": "{name:s}-{levelname:s}-{asctime:s}-{message:s}"
},
"verbose": {
"class": "logging.Formatter",
"style": "{",
"datefmt": "%Y-%m-%dT%H:%M:%S",
"format": "{name:s}:{levelname:s}:L{lineno:d} {asctime:s} {message:s}"
}
},
"handlers": {
"console": {
"level": "DEBUG",
"class": "logging.StreamHandler",
"formatter": "brief",
"stream": "ext://sys.stdout"
},
"file_handler": {
"level": "INFO",
"class": "logging.handlers.WatchedFileHandler",
"formatter": "verbose",
"filename": "deletefb/deletefb.log",
"mode": "a",
"encoding": "utf-8"
}
},
"loggers": {
"root": {
"level": "DEBUG",
"handlers": ["console", "file_handler"]
},
"deletefb": {
"level": "DEBUG",
"handlers": ["console"],
"propagate": false
},
"login": {
"level": "DEBUG",
"handlers": ["file_handler"],
"propagate": false
},
"likes": {
"level": "DEBUG",
"handlers": ["file_handler"],
"propagate": false
},
"wall": {
"level": "DEBUG",
"handlers": ["file_handler"],
"propagate": false
}
}
}
}

19
deletefb/tools/common.py

@ -1,6 +1,8 @@
import json import json
import logging
import logging.config
import os import os
from os.path import abspath, relpath, split from os.path import abspath, relpath, split, isfile
import time import time
from selenium.common.exceptions import ( from selenium.common.exceptions import (
@ -24,6 +26,21 @@ def try_move(actions, el):
time.sleep(5) time.sleep(5)
continue continue
def logger(name):
"""
Args:
name (str): Logger name
Returns:
logging.Logger
"""
config_path = "deletefb/logging_conf.json"
if not isfile(config_path): # called from file (deletefb.py)
os.chdir("..")
with open(config_path, "r", encoding="utf-8") as config_file:
config = json.load(config_file)
logging.config.dictConfig(config["logging"])
return logging.getLogger(name)
def archiver(category): def archiver(category):
""" """

5
deletefb/tools/likes.py

@ -3,7 +3,9 @@ from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support import expected_conditions as EC
from .common import SELENIUM_EXCEPTIONS, archiver from .common import SELENIUM_EXCEPTIONS, archiver, logger
LOG = logger(__name__)
def load_likes(driver): def load_likes(driver):
@ -29,6 +31,7 @@ def load_likes(driver):
EC.presence_of_element_located((By.XPATH, "//button/div/i[@aria-hidden=\"true\"]")) EC.presence_of_element_located((By.XPATH, "//button/div/i[@aria-hidden=\"true\"]"))
) )
except SELENIUM_EXCEPTIONS: except SELENIUM_EXCEPTIONS:
LOG.exception("Traceback of load_likes")
return return
def unlike_pages(driver): def unlike_pages(driver):

Loading…
Cancel
Save