Untitled
unknown
plain_text
2 years ago
7.3 kB
8
Indexable
import firebase_admin
from firebase_admin import credentials, firestore, storage
if not firebase_admin._apps:
cred = credentials.Certificate('tgbot-374816-126a04adfbcc.json')
app = firebase_admin.initialize_app(cred, {'storageBucket': 'tgbot-374816.appspot.com'})
# def add_to_base(arr, n = None, is_new = None):
# # arr = ['-1']*22
#
#
# # file = arr[19].replace("_",".").split(".")
# photo_url = arr[19]
# file = arr[19].split("/")[1]
# print(file)
# f_num = file.replace("_",".").split('.')
# print(f_num)
# name = '0'*(10 - len(f_num[1])) + f_num[1]
# db = firestore.client()
# col = db.collection("TgBot")
# docs = col.stream()
# # *_, last = docs
# conf = db.collection("Conf")
# data = conf.document("Data")
# ls = data.get().to_dict()
# last = int(ls["LastID"].replace("0",''))
# print(last)
# if is_new == True:
# name+=n
# print(name)
# print(last)
# # return 1
# # ls = int(last.id.replace('0', ''))
# # last = 0
# # id = arr[18]
# # for doc in docs:
# # last = max(last, int(doc.id))
#
# print(last)
# if int(f_num[1] + n) <= last:
# print("Старое фото")
# return {"1": "Старое фото",
# "type": arr[12],
# "time": arr[1]}
# # photo_path = "crops\et.PNG"
# ######### Только wiriteoff
# if is_new is not None:
# photo_path = arr[17]
# print("path ", photo_path)
# storage_filename = f"TgPhotoes/{photo_path}"
#
# print("номер ", n, is_new)
# bucket = storage.bucket()
# blob = bucket.blob(storage_filename)
# blob.upload_from_filename(photo_path)
# blob.make_public()
# photo_url = blob.public_url
# # photo_url = blob._get_download_url()
# print(photo_url)
# # return 0
# g = lambda x: x[:-1] if len(x)>10 else x
#
#
# # return 0
# # print(last)
# doc_ref = col.document(name)
#
# s = {'Doc_ID':ls["nums"] + 1,'Статус':arr[0], 'time':arr[1], 'Chat_id':arr[2], 'Название_чата':arr[3], 'type':arr[4], 'id':arr[5], 'username':arr[6],
# 'nikname':arr[7], 'm_id':arr[8], 'id_группы':arr[9], 'id_сообщения-ответ':arr[10], 'дата-ответ':arr[11], 'reptype':arr[12], 'категория':arr[13],
# 'url':arr[14], 'report':arr[15], 'Группа':arr[16], 'docurl':photo_url, 'fileid':arr[18], 'filen':arr[19], 'lmd':arr[20], 'text':arr[21]}
#
# doc_ref.set(s)
# data.set({"LastID": g(name),
# "nums":ls["nums"] + 1})
# return {"0":"Фото новое"}
def add_to_base(n = '1', name= "0000000026", photo_path = "", mark = None):
db = firestore.client()
col = db.collection("TgBot")
doc = col.document(name)
subcol = doc.collection("mark")
doc = subcol.document(name + '-' + n)
storage_filename = f"TgPhotoes/{photo_path}"
bucket = storage.bucket()
blob = bucket.blob(storage_filename)
blob.upload_from_filename(photo_path)
blob.make_public()
photo_url = blob.public_url
# photo_url = blob._get_download_url()
print(photo_url)
doc.set({
"Продукт":mark["product"],
"Сотрудник":mark["worker"],
"Приготовил":mark["cooked"],
"Списать":mark["write-off"],
"Время списания":"",
"Статус":mark["status"],
"url": photo_url,
"TF": True,
})
def upl_base(arr, mark = None):
file = arr[19].split("/")[1]
print(file)
f_num = file.replace("_", ".").split('.')
print(f_num)
name = '0' * (10 - len(f_num[1])) + f_num[1]
db = firestore.client()
col = db.collection("TgBot")
docs = col.stream()
# *_, last = docs
conf = db.collection("Conf")
data = conf.document("Data")
ls = data.get().to_dict()
last = int(ls["LastID"].replace("0", ''))
print(last)
print(name)
print(last)
print(last)
if int(f_num[1]) <= last:
print("Старое фото")
return {"1": "Старое фото",
"type": arr[12],
"time": arr[1]}
doc_ref = col.document(name)
s = {'Doc_ID': ls["nums"] + 1, 'Статус': arr[0], 'time': arr[1], 'Chat_id': arr[2], 'Название_чата': arr[3],
'type': arr[4], 'id': arr[5], 'username': arr[6], 'nikname': arr[7], 'm_id': arr[8], 'id_группы': arr[9],
'id_сообщения-ответ': arr[10], 'дата-ответ': arr[11], 'reptype': arr[12], 'категория': arr[13], 'url': arr[14],
'report': arr[15], 'Группа': arr[16], 'docurl': "", 'fileid': arr[18], 'filen': arr[19], 'lmd': arr[20],
'text': arr[21]}
if mark is not None:
subcol = doc_ref.collection("mark")
subcol.add({})
doc_ref.set(s)
# data.set({"LastID": name,
# "nums": ls["nums"] + 1})
return {"0": "Фото новое",
"name": name}
def get_data():
db = firestore.client()
arr = []
query = db.collection_group(u'mark').where(u'TF', u'==', True)
results = query.stream()
# print(results)
for r in results:
res = r.to_dict()
# print(r.id)
arr.append([r.id,res["Продукт"],res["Сотрудник"], res["Приготовил"], res["Списать"],res["Списать"] - res["Приготовил"], res["url"]])
# print(len(arr))
return arr
# get_data()
def delete_doc(docs):
# document_path = f"mark/{subcollection_name}/{document_id}"
db = firestore.client()
batch = db.batch()
for doc in docs:
print(doc)
main_doc = doc.split('-')[0]
path = f'TgBot/{main_doc}/mark/{doc}'
print(path)
doc_ref = db.document(path)
batch.delete(doc_ref)
batch.commit()
def upd_doc(docs, status):
db = firestore.client()
batch = db.batch()
for doc in docs:
print(doc)
main_doc = doc.split('-')[0]
path = f'TgBot/{main_doc}/mark/{doc}'
print(path)
doc_ref = db.document(path)
batch.update(doc_ref, {"TF": False, "Статус": "Списано"})
batch.commit()
def createColl(name):
db = firestore.client()
col = db.collection("TgBot")
doc = col.document(name)
# db.collection('TgBot').document(name).delete()
# delete_doc()
# delete_doc(['0000000036-0'])
# res = upl_base(['add', '24.07.2023, 09:50:40', 1720207138, None, 'private', 1720207138, None, 'Gleb', 982, None, 981, '07.24.2023, 09:50:38', 'Маркировка', 'День', 'https://api.telegram.org/file/bot6268498821:AAGGDDITcRI2RFtyljkGUff5IB39ihtWtOk/photos/file_26.jpg', 'Фото: Маркировка\nДень 24.07.2023, 12:50', None, '','AgACAgIAAxkBAAID1mS-SXBKWYSGqZmzI-usQPAgEudgAALayTEbFEjwSZjx0YeSoooXAQADAgADbQADLwQ', 'photos/file_26.jpg', 'lmd', 'OCR'])
#
# name = res["name"]
# names = ["(1)file_26.jpg","(2)file_26.jpg"]
# i = 1
# for file in names:
# add_to_base(name=name, photo_path=file, n=str(i))
# i+=1Editor is loading...