@@ -94,53 +94,61 @@ def main():
9494 gallery = upload .get ("gallery" , 0 )
9595 qr = upload .get ("qr" , 0 )
9696
97- def field ( name , lines ):
98- return { "name" : name , "value" : " \n " .join (lines ) or "없음" , "inline" : False }
97+ def lines_to_value ( lines ):
98+ return " \n " .join (lines ) or "없음"
9999
100- map_lines = [
101- f"진입 { ev .get ('map_view' , 0 )} 회 ({ us .get ('map_view' , 0 )} 명)" ,
102- f"재검색 { ev .get ('map_re_search' , 0 )} 회" ,
103- f"브랜드 필터 { ev .get ('map_brand_filter_toggle' , 0 )} 회" ,
100+ map_desc = " \n " . join ( [
101+ f"진입 ** { ev .get ('map_view' , 0 )} 회** ({ us .get ('map_view' , 0 )} 명)" ,
102+ f"재검색 ** { ev .get ('map_re_search' , 0 )} 회** " ,
103+ f"브랜드 필터 ** { ev .get ('map_brand_filter_toggle' , 0 )} 회** " ,
104104 ] + brand_lines + [
105- f"부스 선택 { ev .get ('booth_select' , 0 )} 회 ({ us .get ('booth_select' , 0 )} 명)" ,
106- f"길찾기 { ev .get ('map_route_click' , 0 )} 회" ,
105+ f"부스 선택 **{ ev .get ('booth_select' , 0 )} 회** ({ us .get ('booth_select' , 0 )} 명)" ,
106+ f"길찾기 **{ ev .get ('map_route_click' , 0 )} 회**" ,
107+ ])
108+
109+ pose_desc = "\n " .join ([
110+ f"진입 **{ ev .get ('pose_view' , 0 )} 회** ({ us .get ('pose_view' , 0 )} 명)" ,
111+ f"필터 토글 **{ ev .get ('pose_filter_toggle' , 0 )} 회**" ,
112+ f"랜덤 시작 **{ ev .get ('pose_random_start' , 0 )} 회**" ,
113+ f"북마크 **{ ev .get ('pose_bookmark' , 0 )} 회**" ,
114+ ])
115+
116+ archive_desc = "\n " .join ([
117+ f"진입 **{ ev .get ('archiving_view' , 0 )} 회** ({ us .get ('archiving_view' , 0 )} 명)" ,
118+ f"사진 상세 **{ ev .get ('photo_detail_view' , 0 )} 회**" ,
119+ f"메모 작성 **{ ev .get ('photo_memo_create' , 0 )} 회**" ,
120+ f"앨범 생성 **{ ev .get ('album_create' , 0 )} 회**" ,
121+ f"업로드 갤러리 **{ gallery } 회** | QR **{ qr } 회**" ,
122+ ])
123+
124+ embeds = [
125+ {
126+ "title" : f"📊 GA4 일간 리포트 · { yesterday } " ,
127+ "description" : f"👥 DAU **{ dau } 명** | 신규 **{ new_users } 명**" ,
128+ "color" : 0x5865F2 ,
129+ },
130+ {
131+ "title" : "🗺 지도" ,
132+ "description" : map_desc ,
133+ "color" : 0x57F287 ,
134+ },
135+ {
136+ "title" : "🧘 포즈" ,
137+ "description" : pose_desc ,
138+ "color" : 0xFEE75C ,
139+ },
140+ {
141+ "title" : "📦 아카이브" ,
142+ "description" : archive_desc ,
143+ "color" : 0xEB459E ,
144+ "footer" : {"text" : "neki · GA4 자동 리포트" },
145+ },
107146 ]
108147
109- pose_lines = [
110- f"진입 { ev .get ('pose_view' , 0 )} 회 ({ us .get ('pose_view' , 0 )} 명)" ,
111- f"필터 토글 { ev .get ('pose_filter_toggle' , 0 )} 회" ,
112- f"랜덤 시작 { ev .get ('pose_random_start' , 0 )} 회" ,
113- f"북마크 { ev .get ('pose_bookmark' , 0 )} 회" ,
114- ]
115-
116- archive_lines = [
117- f"진입 { ev .get ('archiving_view' , 0 )} 회 ({ us .get ('archiving_view' , 0 )} 명)" ,
118- f"사진 상세 { ev .get ('photo_detail_view' , 0 )} 회" ,
119- f"메모 작성 { ev .get ('photo_memo_create' , 0 )} 회" ,
120- f"앨범 생성 { ev .get ('album_create' , 0 )} 회" ,
121- ]
122-
123- upload_lines = [
124- f"갤러리 { gallery } 회 | QR { qr } 회" ,
125- ]
126-
127- embed = {
128- "title" : f"📊 GA4 일간 리포트 · { yesterday } " ,
129- "color" : 0x5865F2 ,
130- "fields" : [
131- {"name" : "👥 DAU" , "value" : f"**{ dau } 명** (신규 { new_users } 명)" , "inline" : False },
132- field ("🗺 지도" , map_lines ),
133- field ("🧘 포즈" , pose_lines ),
134- field ("📦 아카이브" , archive_lines ),
135- field ("📤 사진 업로드" , upload_lines ),
136- ],
137- "footer" : {"text" : "neki · GA4 자동 리포트" },
138- }
139-
140148 payload = {
141149 "username" : "네키 GA 봇" ,
142150 "avatar_url" : "https://i.ifh.cc/PbdkGM.jpg" ,
143- "embeds" : [ embed ] ,
151+ "embeds" : embeds ,
144152 }
145153
146154 resp = requests .post (DISCORD_WEBHOOK_URL , json = payload )
0 commit comments