Amazing-Python-Scripts
79 строк · 2.1 Кб
1# Youtube Trending Feed Reader
2# Written by XZANATOL
3from optparse import OptionParser4from pymongo import MongoClient5import pandas as pd6import sys7
8# Help menu
9usage = """10<Script> [Options]
11
12[Options]
13-h, --help Shows this help message and exit
14-c, --csv Reads data from "Youtube.csv" file
15-m, --mongo Reads data from MongoDB
16"""
17
18# Load args
19parser = OptionParser()20parser.add_option("-c", "--csv", action="store_true", dest="csv",21help="Saves extracted contents to a CSV file.")22parser.add_option("-m", "--mongo", action="store_true",23dest="mongo", help="Saves extracted contents to a MongoDB.")24
25
26def read_mongo():27# Connect to service28client = MongoClient("127.0.0.1")29# Create an object30db = client.Youtube.trending31return db.find() # Return all values32
33
34def read_csv():35# read databse36df = pd.read_csv("Youtube.csv")37data = []38for index, row in df.iterrows():39data.append(row) # Append each dictionary to the list40return data # Return all values41
42
43def display(data):44i = 045for card in data:46# For every 10 cards print section47if i % 10 == 0:48c = input("Show Section? [y/n] > ")49if c.lower() == "y":50print("***********************************")51print(f"""{card["section"]} section""")52print("***********************************")53else:54sys.exit() # If had enough of reading55i += 1 # Increament56print("Title:", card["title"])57print("Link:", card["link"])58print("Channel:", card["channel"])59print("Views:", card["views"])60print("Time:", card["date"])61print("==============================================")62
63
64if __name__ == "__main__":65(options, args) = parser.parse_args()66
67# Flags68csv = options.csv69mongo = options.mongo70# Validate flags71if not (bool(csv) ^ bool(mongo)): # XNOR Gate72print(usage)73sys.exit()74
75if mongo:76data = read_mongo()77else:78data = read_csv()79display(data)80