Skip to content

Commit 0238907

Browse files
authored
Apps/plugins cleanup (#2416)
2 parents 4fb7537 + 69f7894 commit 0238907

File tree

19 files changed

+319
-581
lines changed

19 files changed

+319
-581
lines changed

backend/database/apps.py

Lines changed: 64 additions & 62 deletions
Large diffs are not rendered by default.

backend/database/chat.py

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ def add_message(uid: str, message_data: dict):
1919
return message_data
2020

2121

22-
def add_plugin_message(text: str, plugin_id: str, uid: str, conversation_id: Optional[str] = None) -> Message:
22+
def add_app_message(text: str, app_id: str, uid: str, conversation_id: Optional[str] = None) -> Message:
2323
ai_message = Message(
2424
id=str(uuid.uuid4()),
2525
text=text,
2626
created_at=datetime.now(timezone.utc),
2727
sender='ai',
28-
plugin_id=plugin_id,
28+
app_id=app_id,
2929
from_external_integration=False,
3030
type='text',
3131
memories_id=[conversation_id] if conversation_id else [],
@@ -40,7 +40,7 @@ def add_summary_message(text: str, uid: str) -> Message:
4040
text=text,
4141
created_at=datetime.now(timezone.utc),
4242
sender='ai',
43-
plugin_id=None,
43+
app_id=None,
4444
from_external_integration=False,
4545
type='day_summary',
4646
memories_id=[],
@@ -49,11 +49,11 @@ def add_summary_message(text: str, uid: str) -> Message:
4949
return ai_message
5050

5151

52-
def get_plugin_messages(uid: str, plugin_id: str, limit: int = 20, offset: int = 0, include_conversations: bool = False):
52+
def get_app_messages(uid: str, app_id: str, limit: int = 20, offset: int = 0, include_conversations: bool = False):
5353
user_ref = db.collection('users').document(uid)
5454
messages_ref = (
5555
user_ref.collection('messages')
56-
.where(filter=FieldFilter('plugin_id', '==', plugin_id))
56+
.where(filter=FieldFilter('plugin_id', '==', app_id))
5757
.order_by('created_at', direction=firestore.Query.DESCENDING)
5858
.limit(limit)
5959
.offset(offset)
@@ -87,25 +87,27 @@ def get_plugin_messages(uid: str, plugin_id: str, limit: int = 20, offset: int =
8787
# Attach conversations to messages
8888
for message in messages:
8989
message['memories'] = [
90-
conversations[conversation_id] for conversation_id in message.get('memories_id', []) if conversation_id in conversations
90+
conversations[conversation_id] for conversation_id in message.get('memories_id', []) if
91+
conversation_id in conversations
9192
]
9293

9394
return messages
9495

9596

9697
@timeit
9798
def get_messages(
98-
uid: str, limit: int = 20, offset: int = 0, include_conversations: bool = False, plugin_id: Optional[str] = None, chat_session_id: Optional[str] = None
99+
uid: str, limit: int = 20, offset: int = 0, include_conversations: bool = False, app_id: Optional[str] = None,
100+
chat_session_id: Optional[str] = None
99101
# include_plugin_id_filter: bool = True,
100102
):
101-
print('get_messages', uid, limit, offset, plugin_id, include_conversations)
103+
print('get_messages', uid, limit, offset, app_id, include_conversations)
102104
user_ref = db.collection('users').document(uid)
103105
messages_ref = (
104106
user_ref.collection('messages')
105107
.where(filter=FieldFilter('deleted', '==', False))
106108
)
107109
# if include_plugin_id_filter:
108-
messages_ref = messages_ref.where(filter=FieldFilter('plugin_id', '==', plugin_id))
110+
messages_ref = messages_ref.where(filter=FieldFilter('plugin_id', '==', app_id))
109111
if chat_session_id:
110112
messages_ref = messages_ref.where(filter=FieldFilter('chat_session_id', '==', chat_session_id))
111113

@@ -140,7 +142,8 @@ def get_messages(
140142
# Attach conversations to messages
141143
for message in messages:
142144
message['memories'] = [
143-
conversations[conversation_id] for conversation_id in message.get('memories_id', []) if conversation_id in conversations
145+
conversations[conversation_id] for conversation_id in message.get('memories_id', []) if
146+
conversation_id in conversations
144147
]
145148

146149
# Fetch file chat
@@ -190,15 +193,16 @@ def report_message(uid: str, msg_doc_id: str):
190193
return {"message": f"Update failed: {e}"}
191194

192195

193-
def batch_delete_messages(parent_doc_ref, batch_size=450, plugin_id: Optional[str] = None, chat_session_id: Optional[str] = None):
196+
def batch_delete_messages(parent_doc_ref, batch_size=450, app_id: Optional[str] = None,
197+
chat_session_id: Optional[str] = None):
194198
messages_ref = (
195199
parent_doc_ref.collection('messages')
196200
.where(filter=FieldFilter('deleted', '==', False))
197201
)
198-
messages_ref = messages_ref.where(filter=FieldFilter('plugin_id', '==', plugin_id))
202+
messages_ref = messages_ref.where(filter=FieldFilter('plugin_id', '==', app_id))
199203
if chat_session_id:
200204
messages_ref = messages_ref.where(filter=FieldFilter('chat_session_id', '==', chat_session_id))
201-
print('batch_delete_messages', plugin_id)
205+
print('batch_delete_messages', app_id)
202206
last_doc = None # For pagination
203207

204208
while True:
@@ -234,11 +238,12 @@ def clear_chat(uid: str, app_id: Optional[str] = None, chat_session_id: Optional
234238
print(f"Deleting messages for user: {uid}")
235239
if not user_ref.get().exists:
236240
return {"message": "User not found"}
237-
batch_delete_messages(user_ref, plugin_id=app_id, chat_session_id=chat_session_id)
241+
batch_delete_messages(user_ref, app_id=app_id, chat_session_id=chat_session_id)
238242
return None
239243
except Exception as e:
240244
return {"message": str(e)}
241245

246+
242247
def add_multi_files(uid: str, files_data: list):
243248
batch = db.batch()
244249
user_ref = db.collection('users').document(uid)
@@ -250,6 +255,7 @@ def add_multi_files(uid: str, files_data: list):
250255

251256
batch.commit()
252257

258+
253259
def get_chat_files(uid: str, files_id: List[str] = []):
254260
files_ref = (
255261
db.collection('users').document(uid).collection('files')
@@ -272,17 +278,19 @@ def delete_multi_files(uid: str, files_data: list):
272278

273279
batch.commit()
274280

281+
275282
def add_chat_session(uid: str, chat_session_data: dict):
276283
chat_session_data['deleted'] = False
277284
user_ref = db.collection('users').document(uid)
278285
user_ref.collection('chat_sessions').document(chat_session_data['id']).set(chat_session_data)
279286
return chat_session_data
280287

281-
def get_chat_session(uid: str, plugin_id: Optional[str] = None):
288+
289+
def get_chat_session(uid: str, app_id: Optional[str] = None):
282290
session_ref = (
283291
db.collection('users').document(uid).collection('chat_sessions')
284292
.where(filter=FieldFilter('deleted', '==', False))
285-
.where(filter=FieldFilter('plugin_id', '==', plugin_id))
293+
.where(filter=FieldFilter('plugin_id', '==', app_id))
286294
.limit(1)
287295
)
288296

@@ -292,16 +300,19 @@ def get_chat_session(uid: str, plugin_id: Optional[str] = None):
292300

293301
return None
294302

303+
295304
def delete_chat_session(uid, chat_session_id):
296305
user_ref = db.collection('users').document(uid)
297306
session_ref = user_ref.collection('chat_sessions').document(chat_session_id)
298307
session_ref.update({'deleted': True})
299308

309+
300310
def add_message_to_chat_session(uid: str, chat_session_id: str, message_id: str):
301311
user_ref = db.collection('users').document(uid)
302312
session_ref = user_ref.collection('chat_sessions').document(chat_session_id)
303313
session_ref.update({"message_ids": firestore.ArrayUnion([message_id])})
304314

315+
305316
def add_files_to_chat_session(uid: str, chat_session_id: str, file_ids: List[str]):
306317
if not file_ids:
307318
return

backend/database/mem_db.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import time
22

3-
proactive_noti_sent_at = {} # {<uid:plugin_id>: (ts, ex)}
3+
proactive_noti_sent_at = {} # {<uid:app_id>: (ts, ex)}
44

5-
def set_proactive_noti_sent_at(uid: str, plugin_id: str, ts: int, ttl: int = 30):
6-
k = f'{uid}:{plugin_id}'
5+
def set_proactive_noti_sent_at(uid: str, app_id: str, ts: int, ttl: int = 30):
6+
k = f'{uid}:{app_id}'
77
proactive_noti_sent_at[k] = (ts, ttl + time.time())
88

9-
def get_proactive_noti_sent_at(uid: str, plugin_id: str):
10-
k = f'{uid}:{plugin_id}'
9+
def get_proactive_noti_sent_at(uid: str, app_id: str):
10+
k = f'{uid}:{app_id}'
1111
if k not in proactive_noti_sent_at:
1212
return None
1313

backend/database/redis_db.py

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -185,17 +185,17 @@ def get_specific_user_review(app_id: str, uid: str) -> dict:
185185
return reviews.get(uid, {})
186186

187187

188-
def migrate_user_plugins_reviews(prev_uid: str, new_uid: str):
188+
def migrate_user_apps_reviews(prev_uid: str, new_uid: str):
189189
for key in r.scan_iter(f'plugins:*:reviews'):
190-
plugin_id = key.decode().split(':')[1]
190+
app_id = key.decode().split(':')[1]
191191
reviews = r.get(key)
192192
if not reviews:
193193
continue
194194
reviews = eval(reviews)
195195
if prev_uid in reviews:
196196
reviews[new_uid] = reviews.pop(prev_uid)
197197
reviews[new_uid]['uid'] = new_uid
198-
r.set(f'plugins:{plugin_id}:reviews', str(reviews))
198+
r.set(f'plugins:{app_id}:reviews', str(reviews))
199199

200200

201201
def set_user_paid_app(app_id: str, uid: str, ttl: int):
@@ -217,36 +217,36 @@ def disable_app(uid: str, app_id: str):
217217
r.srem(f'users:{uid}:enabled_plugins', app_id)
218218

219219

220-
def get_enabled_plugins(uid: str):
220+
def get_enabled_apps(uid: str):
221221
val = r.smembers(f'users:{uid}:enabled_plugins')
222222
if not val:
223223
return []
224224
return [x.decode() for x in val]
225225

226226

227-
def get_plugin_reviews(plugin_id: str) -> dict:
228-
reviews = r.get(f'plugins:{plugin_id}:reviews')
227+
def get_app_reviews(app_id: str) -> dict:
228+
reviews = r.get(f'plugins:{app_id}:reviews')
229229
if not reviews:
230230
return {}
231231
return eval(reviews)
232232

233233

234-
def get_plugins_reviews(plugin_ids: list) -> dict:
235-
if not plugin_ids:
234+
def get_apps_reviews(app_ids: list) -> dict:
235+
if not app_ids:
236236
return {}
237237

238-
keys = [f'plugins:{plugin_id}:reviews' for plugin_id in plugin_ids]
238+
keys = [f'plugins:{app_id}:reviews' for app_id in app_ids]
239239
reviews = r.mget(keys)
240240
if reviews is None:
241241
return {}
242242
return {
243-
plugin_id: eval(review) if review else {}
244-
for plugin_id, review in zip(plugin_ids, reviews)
243+
app_id: eval(review) if review else {}
244+
for app_id, review in zip(app_ids, reviews)
245245
}
246246

247247

248-
def set_plugin_installs_count(plugin_id: str, count: int):
249-
r.set(f'plugins:{plugin_id}:installs', count)
248+
def set_app_installs_count(app_id: str, count: int):
249+
r.set(f'plugins:{app_id}:installs', count)
250250

251251

252252
def increase_app_installs_count(app_id: str):
@@ -257,24 +257,24 @@ def decrease_app_installs_count(app_id: str):
257257
r.decr(f'plugins:{app_id}:installs')
258258

259259

260-
def get_plugin_installs_count(plugin_id: str) -> int:
261-
count = r.get(f'plugins:{plugin_id}:installs')
260+
def get_app_installs_count(app_id: str) -> int:
261+
count = r.get(f'plugins:{app_id}:installs')
262262
if not count:
263263
return 0
264264
return int(count)
265265

266266

267-
def get_plugins_installs_count(plugin_ids: list) -> dict:
268-
if not plugin_ids:
267+
def get_apps_installs_count(app_ids: list) -> dict:
268+
if not app_ids:
269269
return {}
270270

271-
keys = [f'plugins:{plugin_id}:installs' for plugin_id in plugin_ids]
271+
keys = [f'plugins:{app_id}:installs' for app_id in app_ids]
272272
counts = r.mget(keys)
273273
if counts is None:
274274
return {}
275275
return {
276-
plugin_id: int(count) if count else 0
277-
for plugin_id, count in zip(plugin_ids, counts)
276+
app_id: int(count) if count else 0
277+
for app_id, count in zip(app_ids, counts)
278278
}
279279

280280

@@ -460,19 +460,19 @@ def has_migrated_retrieval_conversation_id(conversation_id: str) -> bool:
460460
return r.sismember('migrated_retrieval_memory_ids', conversation_id)
461461

462462

463-
def set_proactive_noti_sent_at(uid: str, plugin_id: str, ts: int, ttl: int = 30):
464-
r.set(f'{uid}:{plugin_id}:proactive_noti_sent_at', ts, ex=ttl)
463+
def set_proactive_noti_sent_at(uid: str, app_id: str, ts: int, ttl: int = 30):
464+
r.set(f'{uid}:{app_id}:proactive_noti_sent_at', ts, ex=ttl)
465465

466466

467-
def get_proactive_noti_sent_at(uid: str, plugin_id: str):
468-
val = r.get(f'{uid}:{plugin_id}:proactive_noti_sent_at')
467+
def get_proactive_noti_sent_at(uid: str, app_id: str):
468+
val = r.get(f'{uid}:{app_id}:proactive_noti_sent_at')
469469
if not val:
470470
return None
471471
return int(val)
472472

473473

474-
def get_proactive_noti_sent_at_ttl(uid: str, plugin_id: str):
475-
return r.ttl(f'{uid}:{plugin_id}:proactive_noti_sent_at')
474+
def get_proactive_noti_sent_at_ttl(uid: str, app_id: str):
475+
return r.ttl(f'{uid}:{app_id}:proactive_noti_sent_at')
476476

477477

478478
def set_user_preferred_app(uid: str, app_id: str):

0 commit comments

Comments
 (0)