Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- import getpass
- from lxml import html
- from datetime import datetime
- currentYear = datetime.now().strftime('%Y')
- currentMonth = datetime.now().strftime('%B')
- login_url = "https://www.xda-developers.com/portal-login"
- template = "https://www.xda-developers.com/wp-admin/edit.php"
- body = "https://www.xda-developers.com/wp-admin/edit.php?s&post_status=all&post_type=post&author="
- month_datestamp = "&action=-1&m="
- MONTHS = {
- "0": "All",
- "01": "January",
- "02": "February",
- "03": "March",
- "04": "April",
- "05": "May",
- "06": "June",
- "07": "July",
- "08": "August",
- "09": "September",
- "10": "October",
- "11": "November",
- "12": "December"
- }
- def get_count(session_requests, url, pattern):
- result = session_requests.get(url, headers = dict(referer = url))
- tree = html.fromstring(result.content)
- return len(tree.xpath(pattern))
- def main():
- session_requests = requests.session()
- payload = {
- "log": username,
- "pwd": password
- }
- result = session_requests.post(login_url, data = payload, headers = dict(referer = login_url))
- result = session_requests.get(template, headers = dict(referer = template))
- tree = html.fromstring(result.content)
- author_name = tree.xpath("//span[@class='display-name']/text()")
- author_id = tree.xpath("//div[@class='post_author']/text()")
- url = (body + author_id[0] + month_datestamp + currentYear + y)
- result = session_requests.get(url, headers = dict(referer = url))
- tree = html.fromstring(result.content)
- article_count = tree.xpath("//span[@class='displaying-num']/text()")
- page_count = tree.xpath("//span[@class='total-pages']/text()")
- forumlink_count = sum([
- get_count(session_requests, "{}/{}".format(url, i + 1), "//a[text()='Forum Links']")
- for i in range(int(page_count[0]))
- ])
- minixda_count = sum([
- get_count(session_requests, "{}/{}".format(url, i + 1), "//a[text()='Mini XDA']")
- for i in range(int(page_count[0]))
- ])
- fullxda_count = sum([
- get_count(session_requests, "{}/{}".format(url, i + 1), "//a[text()='Full XDA']")
- for i in range(int(page_count[0]))
- ])
- minireview_count = sum([
- get_count(session_requests, "{}/{}".format(url, i + 1), "//a[text()='XDA Mini Reviews']")
- for i in range(int(page_count[0]))
- ])
- fullreview_count = sum([
- get_count(session_requests, "{}/{}".format(url, i + 1), "//a[text()='XDA Full Review']")
- for i in range(int(page_count[0]))
- ])
- drafts_count = sum([
- get_count(session_requests, "{}/{}".format(url, i + 1), "//a[text()='Draft, ']")
- for i in range(int(page_count[0]))
- ])
- price = (forumlink_count * 6) + (minixda_count * 12) + (fullxda_count * 27) + (minireview_count * 60) + (fullreview_count * 100)
- print("Hello,", author_name[0])
- print("Calculating payment for month:", MONTHS[y], currentYear)
- print("Current date is:", currentMonth, currentYear)
- print("You have", article_count[0][0:3], "articles over", page_count[0], "pages.")
- print("You wrote", forumlink_count, "Forum Links,", minixda_count, "Mini XDAs,", fullxda_count, "Full XDAs,", minireview_count, "Mini Reviews, and", fullreview_count, "Full Reviews.")
- print("You have", drafts_count, "drafts.")
- print("You deserve $" + str(price), "for your work in", MONTHS[y] + ", good job!")
- y = input("Select date: ")
- username = input("Username: ")
- password = getpass.getpass("Password: ")
- def checkDate():
- if y in MONTHS:
- main()
- else:
- print("Wrong date")
- checkDate()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement