Amazing-Python-Scripts

Форк
0
79 строк · 2.1 Кб
1
# Youtube Trending Feed Reader
2
# Written by XZANATOL
3
from optparse import OptionParser
4
from pymongo import MongoClient
5
import pandas as pd
6
import sys
7

8
# Help menu
9
usage = """
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
19
parser = OptionParser()
20
parser.add_option("-c", "--csv", action="store_true", dest="csv",
21
                  help="Saves extracted contents to a CSV file.")
22
parser.add_option("-m", "--mongo", action="store_true",
23
                  dest="mongo", help="Saves extracted contents to a MongoDB.")
24

25

26
def read_mongo():
27
    # Connect to service
28
    client = MongoClient("127.0.0.1")
29
    # Create an object
30
    db = client.Youtube.trending
31
    return db.find()  # Return all values
32

33

34
def read_csv():
35
    # read databse
36
    df = pd.read_csv("Youtube.csv")
37
    data = []
38
    for index, row in df.iterrows():
39
        data.append(row)  # Append each dictionary to the list
40
    return data  # Return all values
41

42

43
def display(data):
44
    i = 0
45
    for card in data:
46
        # For every 10 cards print section
47
        if i % 10 == 0:
48
            c = input("Show Section? [y/n] > ")
49
            if c.lower() == "y":
50
                print("***********************************")
51
                print(f"""{card["section"]} section""")
52
                print("***********************************")
53
            else:
54
                sys.exit()  # If had enough of reading
55
        i += 1  # Increament
56
        print("Title:", card["title"])
57
        print("Link:",  card["link"])
58
        print("Channel:", card["channel"])
59
        print("Views:", card["views"])
60
        print("Time:", card["date"])
61
        print("==============================================")
62

63

64
if __name__ == "__main__":
65
    (options, args) = parser.parse_args()
66

67
    # Flags
68
    csv = options.csv
69
    mongo = options.mongo
70
    # Validate flags
71
    if not (bool(csv) ^ bool(mongo)):  # XNOR Gate
72
        print(usage)
73
        sys.exit()
74

75
    if mongo:
76
        data = read_mongo()
77
    else:
78
        data = read_csv()
79
    display(data)
80

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.