-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPython_file_manipulate.py
More file actions
132 lines (104 loc) · 7.33 KB
/
Python_file_manipulate.py
File metadata and controls
132 lines (104 loc) · 7.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#Так, тут не обычная ситуация, так как с какой стороны я не посмотрел, лучшее звонить в exe файл
#Почему будем звонить в exe файл? А что если пользователь захочет перегестрировать пользователя,
#Вроде можно здесь оставить код, но тогда как узнать когда пользователь захочет поменять пользователя?
#Можно куча выходов найти, но по мне оставить exe более чем элегатный ход, ведь его может и пользователь открыть и наткнутся на html doc
#Тут у нас будет лишь читание файла, от регестрации и контроль над открытием этого exe регестрации
#Я буду делать полу-самстоятельные .py файлы, надеюсь так будет норм...
import json
import time
import os
import io
from datetime import datetime, timezone
#Эту штуку можно переместить кстати ЭТОТ БЛОК НУЖЕН ЧТОБЫ ПЕРЕМЕСТИТЬ ВСЕ ФАЙЛЫ В КЭШ
#Всё это нужно чтобы сделать свою большую базу даных, после чего не нужно звонить ютубу и спрашивать у него про теги...
#Что в принцепи осталось сделать? На деле вся система почти сделана, осталось лишь сделать регестрацию и засунуть информацию в json файл,
#Ну и написать туториал текстом, на деле всё просто:
#Нужно зарегать себя как developer и получить youtubeApi ключ,
#Потом нужно себя зарегать как обычный чел (типы что ты не частное лицо и не компания) на Oauth там регестрация
#Зарегать свою почту туда и прекрипить тестого пользоватя всё это в анкете регестрации..
#Потом после регестрации Oauth, там вам доётся secret_client.json и ключ ещё один,
#После регестрации запускаете приложение это и оно автоматически находит по Api тебя и говорит над каким аккаунтом нужно загружать видео
#После трёх кругов ада (хотя всё очень просто, оно на первых парах кажется сложным), вся информация сохроняется в кэш
#Ну и после регестрироватся снова не придётся заполнять информацию,
#Вся информация не удалится с гугла, поэтому один раз нужно пройти три круга ада...
#По идеи сейчас я смотрю с той стороны, как бы стать меньшем зависимым от Youtube Api я трачу много квот на получение тегов...
#Так и вдруг будут воспринимать как спам...
def __make_name_file(name_file, individum_name = True):
if(individum_name == True):
num_file = 0
while True:
num_file += 1
save_file = os.path.splitext(name_file)[0]+str(num_file)+".txt"
if(os.path.isfile(save_file) == False):
return save_file
else:
return name_file
def saveInformation(read_data, save_list_folder = "", save_all_folder = "data/", save_list=True, save_all=True, individual_name_list = False, individual_name_all = True):
all_description_text = read_data.get("all_description")
all_tags_text = read_data.get("all_tags")
all_title_text = read_data.get("all_title")
all_channel_title_text = read_data.get("all_channel_title")
list_description_text = read_data.get("list_description")
list_tags_text = read_data.get("list_tags")
list_title_text = read_data.get("list_title")
if(save_list_folder != ""):
save_list_folder += "/"
if(save_all_folder != ""):
save_all_folder += "/"
if(save_all==True):
#Save all_description.txt
with io.open(__make_name_file(save_all_folder+"all_description.txt", individual_name_all), 'w', encoding="utf-8") as file:
file.write(all_description_text)
file.close()
#Save all_tags.txt
with io.open(__make_name_file(save_all_folder+"all_tags.txt", individual_name_all), 'w', encoding="utf-8") as file:
file.write(all_tags_text)
file.close()
#Save all_title.txt
with io.open(__make_name_file(save_all_folder+"all_title.txt", individual_name_all), 'w', encoding="utf-8") as file:
file.write(all_title_text)
file.close()
#Save all_channel_title.txt
with io.open(__make_name_file(save_all_folder+"all_channel_title.txt", individual_name_all), 'w', encoding="utf-8") as file:
file.write(all_channel_title_text)
file.close()
if(save_list==True):
#Save list_tags.txt
with io.open(__make_name_file(save_list_folder+"list_tags.txt", individual_name_list), 'w', encoding="utf-8") as file:
file.write(list_tags_text)
file.close()
#Save list_description.txt
with io.open(__make_name_file(save_list_folder+"list_description.txt", individual_name_list), 'w', encoding="utf-8") as file:
file.write(list_description_text)
file.close()
#Save list_title.txt
with io.open(__make_name_file(save_list_folder+"list_title.txt", individual_name_list), 'w', encoding="utf-8") as file:
file.write(list_title_text)
file.close()
def __get_file_by_extension(path, file_endswith, recursive = False):
array_file = []
if(recursive == True):
for root, _, files in os.walk(path):
for file in files:
if(file.endswith(file_endswith) == True):
array_file.append(root+"/"+file)
if(recursive == False):
for file in os.listdir(path):
if(file.endswith(file_endswith) == True):
array_file.append(path+"/"+file)
return array_file
def __delete_file(files, day_difference = 3):
list_delete_file = []
for file in files:
now_time = int(datetime.now(timezone.utc).timestamp())
create_time = int(os.path.getctime(file))
day_subst_time = round(divmod(now_time - create_time, 3600)[0]/24,2)
if(day_difference < day_subst_time):
list_delete_file.append(file)
os.remove(file)
return list_delete_file
def DeleteCache(path, day_delete = 8, type_file = ".mp4", recursive_folder = False):
'Удаляет кэш, который устарел'
files = __get_file_by_extension(path, ".mp4")
delete_file = __delete_file(files, day_delete, recursive_folder)
return delete_file