883. Updates the frontend staticData.ts file with the new filters
99"""
1010
11- import os
12- import sys
1311import logging
12+ import os
1413import re
14+ import sys
1515from datetime import date
1616from pathlib import Path
1717
2323os .environ .setdefault ("DJANGO_SETTINGS_MODULE" , "api.settings" )
2424django .setup ()
2525
26- from example .models import Events
27- from services .openai_service import generate_recommended_filters
26+ from example .models import Events # noqa: E402
27+ from services .openai_service import generate_recommended_filters # noqa: E402
2828
2929# Setup logging
3030logging .basicConfig (
@@ -38,11 +38,11 @@ def fetch_upcoming_events():
3838 """Fetch all events with dates >= today"""
3939 today = date .today ()
4040 logger .info (f"Fetching upcoming events from { today } ..." )
41-
41+
4242 events = Events .objects .filter (date__gte = today ).values (
43- ' name' , ' location' , ' date' , ' food' , ' club_type' , ' description'
43+ " name" , " location" , " date" , " food" , " club_type" , " description"
4444 )
45-
45+
4646 events_list = list (events )
4747 logger .info (f"Found { len (events_list )} upcoming events" )
4848 return events_list
@@ -54,7 +54,7 @@ def update_static_data_file(recommended_filters):
5454 frontend_dir = Path (__file__ ).resolve ().parent .parent .parent / "frontend"
5555 static_events_path = frontend_dir / "src" / "data" / "staticEvents.ts"
5656 static_data_path = frontend_dir / "src" / "data" / "staticData.ts"
57-
57+
5858 # Determine which file exists
5959 if static_data_path .exists ():
6060 target_file = static_data_path
@@ -65,40 +65,42 @@ def update_static_data_file(recommended_filters):
6565 else :
6666 logger .error ("Could not find staticEvents.ts or staticData.ts" )
6767 return False
68-
68+
6969 try :
7070 # Read the current file
71- with open (target_file , 'r' , encoding = ' utf-8' ) as f :
71+ with open (target_file , encoding = " utf-8" ) as f :
7272 content = f .read ()
73-
73+
7474 # Format the recommended filters as a TypeScript array
7575 filters_ts = "export const RECOMMENDED_FILTERS: string[] = [\n "
7676 for filter_keyword in recommended_filters :
7777 # Escape quotes in the keyword
7878 escaped = filter_keyword .replace ('"' , '\\ "' )
7979 filters_ts += f' "{ escaped } ",\n '
8080 filters_ts += "];\n "
81-
81+
8282 # Check if RECOMMENDED_FILTERS already exists
8383 if "export const RECOMMENDED_FILTERS" in content :
8484 # Replace existing RECOMMENDED_FILTERS
85- pattern = r' export const RECOMMENDED_FILTERS:.*?\];'
86- content = re .sub (pattern , filters_ts .rstrip (' \n ' ), content , flags = re .DOTALL )
85+ pattern = r" export const RECOMMENDED_FILTERS:.*?\];"
86+ content = re .sub (pattern , filters_ts .rstrip (" \n " ), content , flags = re .DOTALL )
8787 logger .info ("Updated existing RECOMMENDED_FILTERS" )
8888 else :
8989 # Append to the end of the file
9090 content += "\n " + filters_ts
9191 logger .info ("Added new RECOMMENDED_FILTERS export" )
92-
92+
9393 # Write back to the file
94- with open (target_file , 'w' , encoding = ' utf-8' ) as f :
94+ with open (target_file , "w" , encoding = " utf-8" ) as f :
9595 f .write (content )
96-
97- logger .info (f"✅ Successfully updated { target_file .name } with { len (recommended_filters )} filters" )
96+
97+ logger .info (
98+ f"✅ Successfully updated { target_file .name } with { len (recommended_filters )} filters"
99+ )
98100 return True
99-
100- except Exception as e :
101- logger .exception (f "Error updating static data file: { e } " )
101+
102+ except Exception :
103+ logger .exception ("Error updating static data file" )
102104 return False
103105
104106
@@ -107,27 +109,27 @@ def main():
107109 logger .info ("=" * 60 )
108110 logger .info ("Starting recommended filters generation" )
109111 logger .info ("=" * 60 )
110-
112+
111113 # Step 1: Fetch upcoming events
112114 events_data = fetch_upcoming_events ()
113-
115+
114116 if not events_data :
115117 logger .warning ("No upcoming events found, cannot generate filters" )
116118 return 1
117-
119+
118120 # Step 2: Generate recommended filters using OpenAI
119121 logger .info ("Generating recommended filters using OpenAI..." )
120122 recommended_filters = generate_recommended_filters (events_data )
121-
123+
122124 if not recommended_filters :
123125 logger .error ("Failed to generate recommended filters" )
124126 return 1
125-
127+
126128 logger .info (f"Generated { len (recommended_filters )} filters: { recommended_filters } " )
127-
129+
128130 # Step 3: Update the staticData.ts file
129131 success = update_static_data_file (recommended_filters )
130-
132+
131133 if success :
132134 logger .info ("=" * 60 )
133135 logger .info ("✅ Recommended filters generation completed successfully" )
@@ -140,4 +142,3 @@ def main():
140142
141143if __name__ == "__main__" :
142144 sys .exit (main ())
143-
0 commit comments