Spaces:
Build error
Build error
| import os | |
| from datetime import datetime | |
| import firebase_admin | |
| from dotenv import load_dotenv | |
| from firebase_admin import credentials, firestore | |
| class FirebaseConnector: | |
| def __init__(self): | |
| load_dotenv() | |
| cert_path = self.get_credentials_path() | |
| cred = credentials.Certificate(cert_path) | |
| firebase_admin.initialize_app(cred) | |
| self.db = self.get_db() | |
| def get_db(self): | |
| db = firestore.client() | |
| return db | |
| def get_credentials_path(self): | |
| credentials_path = os.getenv("RS_FIREBASE_CREDENTIALS_PATH") | |
| return credentials_path | |
| def get_user(self): | |
| user = os.getenv("RS_WORDLE_USER") | |
| return user | |
| def get_state_from_fb_result(self, firebase_result): | |
| result_number_map = {"incorrect": "0", "misplaced": "1", "correct": "2"} | |
| char_result_map = map( | |
| lambda char_res: result_number_map[char_res], firebase_result | |
| ) | |
| return "".join(char_result_map) | |
| def today(self): | |
| return datetime.today().strftime("%Y%m%d") | |
| def today_user_results(self): | |
| daily_results_col = "dailyResults" | |
| currentUser = self.get_user() | |
| # Execute the query and get the first result | |
| docs = ( | |
| self.db.collection(daily_results_col) | |
| .where("user.email", "==", currentUser) | |
| .where("date", "==", self.today()) | |
| .limit(1) | |
| .get() | |
| ) | |
| return docs | |
| def today_user_attempts(self): | |
| docs = self.today_user_results() | |
| attempted_words = [] | |
| if len(docs) > 0: | |
| doc = docs[0] | |
| attempted_words = doc.to_dict().get("attemptedWords") | |
| return attempted_words | |
| def today_word(self): | |
| words_col = "words" | |
| doc = self.db.collection(words_col).document(self.today()) | |
| return doc.get().get("word") | |