Download cookie_checker.py from hashir672/Python-red-gen-space: direct link, hf CLI and curl.
- Browser
- Download file 3.22 kB
-
https://huggingface.co/spaces/hashir672/Python-red-gen-space/resolve/main/cookie_checker.py
- Command line
-
hf download hf://spaces/hashir672/Python-red-gen-space/cookie_checker.py
-
curl -L -o cookie_checker.py https://huggingface.co/spaces/hashir672/Python-red-gen-space/resolve/main/cookie_checker.py
3.22 kB
| import re | |
| import requests | |
| from bs4 import BeautifulSoup | |
| from deep_translator import GoogleTranslator | |
| import glob | |
| import os | |
| import shutil | |
| import string | |
| import random | |
| import sys | |
| import time | |
| import json | |
| loginPageCount = 0 | |
| membershipCount = 0 | |
| noMembershipCount = 0 | |
| def parseCookieFile(cookiefile): | |
| x = "" | |
| """Parse a cookies.txt file and return a dictionary of key value pairs | |
| compatible with requests.""" | |
| cookies = {} | |
| with open(cookiefile, 'r') as fp: | |
| for line in fp: | |
| if not re.match(r'^\#', line): | |
| lineFields = line.strip().split('\t') | |
| try: | |
| cookies[lineFields[5]] = lineFields[6] | |
| except: | |
| # print("Invalid cookie") | |
| pass | |
| if x == "fail": | |
| return "fail" | |
| else: | |
| return cookies | |
| def getNetflixInfo(cookiefile): | |
| global loginPageCount | |
| global membershipCount | |
| global noMembershipCount | |
| cookies = parseCookieFile(cookiefile) | |
| # print(cookies) | |
| if cookies != "fail": | |
| print("a") | |
| r = requests.get("https://www.netflix.com/BillingActivity", | |
| cookies=cookies) | |
| print(r.url) | |
| if "login" in r.url: | |
| loginPageCount = loginPageCount+1 | |
| print("Login Page") | |
| os.remove(cookiefile) | |
| else: | |
| soup = BeautifulSoup(r.content, "html.parser") | |
| try: | |
| billingDate = soup.find("div", { | |
| "data-uia": "streaming-next-cycle" | |
| }).get_text() | |
| planName = soup.find("div", {"data-uia": "plan-name"}).get_text() | |
| billingDate = GoogleTranslator(source='auto', | |
| target='en').translate(billingDate) | |
| try: | |
| lang = soup.find("html", {"lang": 'en'}).get_text() | |
| lang = "English" | |
| except: | |
| lang = "" | |
| pass | |
| planName = GoogleTranslator(source='auto', | |
| target='en').translate(planName) | |
| print(billingDate + " " + planName + " " + lang) | |
| S = 3 | |
| ran = ''.join( | |
| random.choices(string.ascii_uppercase + string.digits, k=S)) | |
| try: | |
| os.makedirs("../Membership") | |
| except: | |
| pass | |
| shutil.move( | |
| cookiefile, "../Membership/" + billingDate + " " + planName + " " + | |
| lang + " (" + str(ran) + ").txt") | |
| membershipCount = membershipCount+1 | |
| except: | |
| S = 10 | |
| ran = ''.join( | |
| random.choices(string.ascii_uppercase + string.digits, k=S)) | |
| try: | |
| os.makedirs("../NoMembership") | |
| except: | |
| pass | |
| shutil.move(cookiefile, '../NoMembership/NoMember' + str(ran) + ".txt") | |
| noMembershipCount=noMembershipCount+1 | |
| else: | |
| os.remove(cookiefile) | |
| n = 0 | |
| try: | |
| os.chdir('./cookies') | |
| except: | |
| print("Cookies folder not found!\nThe name of cookie folder should me 'cookies'.\nClosing in 5 seconds...") | |
| time.sleep(5) | |
| sys.exit() | |
| for fileName in glob.glob("*.txt"): | |
| n += 1 | |
| # print(n) | |
| # print(fileName) | |
| getNetflixInfo(fileName) | |
| if n==0: | |
| print("Cookie folder is empty") | |
| os.chdir('../') | |
| print("========================\nInvalid cookies: "+str(loginPageCount)+"\nMembership Cookies: "+str(membershipCount)+"\nValid cookies (no membership): "+str(noMembershipCount)) |