emunsing commited on
Commit
2d8fee2
·
1 Parent(s): a8fd92f

Refactor and error handling

Browse files
Files changed (1) hide show
  1. eventbrite_summarizer.py +41 -14
eventbrite_summarizer.py CHANGED
@@ -22,13 +22,19 @@ def get_title_subtitle_from_event(event_url):
22
  tag_classes = {'title': 'event-title',
23
  'subtitle': 'summary',
24
  'details': 'has-user-generated-content'}
25
- title = soup.find(class_ = tag_classes['title']).text
26
- subtitle = soup.find(class_ = tag_classes['subtitle']).text
 
 
 
 
 
 
 
 
27
  return title, subtitle
28
 
29
- def get_event_details(event_url):
30
- # Now get details:
31
-
32
  event_id = get_event_id(event_url)
33
  headers = {'Authorization': 'Bearer {}'.format(EVENTBRITE_API_KEY)}
34
  params = {}
@@ -39,9 +45,12 @@ def get_event_details(event_url):
39
  effective_encoding = 'utf-8-sig' #r.apparent_encoding #
40
  r.encoding = effective_encoding
41
 
42
- res_tree = json.loads(r.text)
43
 
44
- content = res_tree['modules'][0]['data']['body']['text']
 
 
 
45
  content = content.replace('\ufeff', '') # Remove byte order mark for utf-8-sig decoding.
46
 
47
  soup = BeautifulSoup(content, 'html.parser')
@@ -49,13 +58,31 @@ def get_event_details(event_url):
49
  details = soup.get_text(separator=' ')
50
  return details
51
 
52
- def get_eventbrite_summary(event_url, top_level_prompt_stub):
53
-
54
- title, subtitle = get_title_subtitle_from_event(event_url)
55
- details = get_event_details(event_url)
56
-
57
- temperature = 0.3
58
- openai_modeltype = "text-davinci-003"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
 
60
  top_level_prompt = top_level_prompt_stub + """
61
  Event Title:{title}
 
22
  tag_classes = {'title': 'event-title',
23
  'subtitle': 'summary',
24
  'details': 'has-user-generated-content'}
25
+ try:
26
+ title = soup.find(class_ = tag_classes['title']).text
27
+ except AttributeError as e:
28
+ raise AttributeError("No event title found on page; has it expired?")
29
+
30
+ try:
31
+ subtitle = soup.find(class_ = tag_classes['subtitle']).text
32
+ except AttributeError as e:
33
+ raise AttributeError("No subtitle found on page; has it expired?")
34
+
35
  return title, subtitle
36
 
37
+ def get_eventbrite_json(event_url):
 
 
38
  event_id = get_event_id(event_url)
39
  headers = {'Authorization': 'Bearer {}'.format(EVENTBRITE_API_KEY)}
40
  params = {}
 
45
  effective_encoding = 'utf-8-sig' #r.apparent_encoding #
46
  r.encoding = effective_encoding
47
 
48
+ return json.loads(r.text)
49
 
50
+ def get_event_details(event_json):
51
+ # Now get details:
52
+
53
+ content = event_json['modules'][0]['data']['body']['text']
54
  content = content.replace('\ufeff', '') # Remove byte order mark for utf-8-sig decoding.
55
 
56
  soup = BeautifulSoup(content, 'html.parser')
 
58
  details = soup.get_text(separator=' ')
59
  return details
60
 
61
+ def get_eventbrite_summary(event_url, top_level_prompt_stub, error_handling='attempt', modeltype="text-davinci-003", temperature=0.3):
62
+ """
63
+ error_handling in "skip", "attempt",
64
+ """
65
+ errors = []
66
+
67
+ try:
68
+ title, subtitle = get_title_subtitle_from_event(event_url)
69
+ except AttributeError as e:
70
+ errors.append(e)
71
+ print(e)
72
+ title, subtitle = '', ''
73
+
74
+ try:
75
+ event_json = get_eventbrite_json(event_url)
76
+ details = get_event_details(event_json)
77
+ except AttributeError as e:
78
+ errors.append(e)
79
+ print(e)
80
+ details = ''
81
+
82
+ if errors and error_handling=='skip':
83
+ return 'Error'
84
+
85
+ openai_modeltype = modeltype
86
 
87
  top_level_prompt = top_level_prompt_stub + """
88
  Event Title:{title}