-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfunc.py
141 lines (122 loc) · 3.89 KB
/
func.py
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
133
134
135
136
137
138
139
140
141
#Вспомогательная библиотека. Дальнейших комментариев не будет (кроме нескольких)
import os
from random import randint
from time import time as curtime, sleep, gmtime, strftime
from math import floor
#Functions
def read(path): #Get file contents
if not os.path.exists(path):
return False
try:
file = open(path, "r")
file_contents = file.read()
file.close()
return file_contents
except FileNotFoundError:
return False
except:
return False
def write(path, data = ""): #Write to file
try:
_finpath = os.path.abspath(os.getcwd())
for i in path.split("/")[0:-1]:
_finpath += "/" + i
#print(_finpath)
if not os.path.exists(_finpath):
os.makedirs(_finpath)
file = open(path, "w")
file.write(data)
file.close()
return True
except Exception as er:
print("Error (file open) - %s\n%s"%(er, path))
return False
global randomid
randomid = curtime()
def get_randid():
global randomid
randomid += randint(0, 120)
return randomid
def get_token(): #Токен я вам предоставлять не буду
return read("token.token")
def format_time():
return strftime("[%H:%M:%S]", gmtime(curtime() + 3600 * 3))
def log(*data):
print(format_time(), *data)
def stop(message = None):
if message:
log("Выполнение программы завершено. Причина: %s"%(message))
else:
log("Выполнение программы завершено.")
exit()
#Не используется вовсе
#TODO: убрать
global d_delay
d_delay = {}
def delay(type = "basic"):
if type in d_delay and d_delay[type] > 0:
log("Таймер %s завершен за %s секунд"%(type, floor((curtime() - d_delay[type]) * 10000) / 10000))
d_delay[type] = 0
else:
log("Таймер \"%s\" запущен"%(type))
d_delay[type] = curtime()
#Используется в паре мест
def classify(i, t = 0):
h = int(not(not i))
if t:
return ["выключена", "активна"][h]
else:
return ["выключен", "активен"][h]
log("Функции загружены!")
#Поиск по списку формата "1,2,3,4"
def conts(item, cnt):
for i in cnt.split(","):
if item in i:
return True
return False
#Поиск по списку формата [1,"2",3,"4"]
def cont(item, cnt):
for i in cnt:
if item == i:
return True
return False
#Получение имени
import vk
from json import dumps, loads
global vkthing, t_names
vkthing = None #Meh
t_names = read("names.cfg")
if not t_names:
t_names = "{}"
t_names = loads(t_names)
def getname_init(vkth):
global vkthing
vkthing = vkth
def getname(A):
global vkthing, t_names
if not str(A) in t_names:
while True:
if A > 0:
try:
temp = vkthing.users.get(user_ids = A)
except vk.exceptions.VkAPIError as err:
if err.code == 6:
sleep(1.1)
continue
else:
raise
except:
raise
temp = temp[0]
name = "%s %s"%(temp["first_name"], temp["last_name"])
else:
name = str(A)
t_names[str(A)] = name
write("names.cfg", dumps(t_names))
log("%s теперь часть нашего сообщества!"%(name))
break
else:
name = t_names[str(A)]
return name
#END
#Code by Oria