summaryrefslogtreecommitdiff
path: root/halfnarp2.py
diff options
context:
space:
mode:
Diffstat (limited to 'halfnarp2.py')
-rwxr-xr-xhalfnarp2.py47
1 files changed, 24 insertions, 23 deletions
diff --git a/halfnarp2.py b/halfnarp2.py
index 0cc3906..5ac9405 100755
--- a/halfnarp2.py
+++ b/halfnarp2.py
@@ -121,14 +121,14 @@ def get_preferences(public_uid):
121def filter_keys_halfnarp(session): 121def filter_keys_halfnarp(session):
122 abstract_html = markdown.markdown(session["abstract"], enable_attributes=False) 122 abstract_html = markdown.markdown(session["abstract"], enable_attributes=False)
123 abstract_clean_html = Sanitizer().sanitize(abstract_html) 123 abstract_clean_html = Sanitizer().sanitize(abstract_html)
124 slot = session["slot"] 124 slot = next(iter(session["slots"]), {})
125 125
126 return { 126 return {
127 "title": session.get("title", "!!! NO TITLE !!!"), 127 "title": session.get("title", "!!! NO TITLE !!!"),
128 "duration": 60 * session.get("duration", 40), 128 "duration": 60 * session.get("duration", 40),
129 "event_id": session["code"], 129 "event_id": session["code"],
130 "language": session.get("content_locale", "de"), 130 "language": session.get("content_locale", "de"),
131 "track_id": session["track_id"], 131 "track_id": session["track"],
132 "speaker_names": ", ".join( 132 "speaker_names": ", ".join(
133 [speaker.get("name", "unnamed") for speaker in session.get("speakers", {})] 133 [speaker.get("name", "unnamed") for speaker in session.get("speakers", {})]
134 ), 134 ),
@@ -141,7 +141,7 @@ def filter_keys_halfnarp(session):
141def filter_keys_fullnarp(session, speakers): 141def filter_keys_fullnarp(session, speakers):
142 abstract_html = markdown.markdown(session["abstract"], enable_attributes=False) 142 abstract_html = markdown.markdown(session["abstract"], enable_attributes=False)
143 abstract_clean_html = Sanitizer().sanitize(abstract_html) 143 abstract_clean_html = Sanitizer().sanitize(abstract_html)
144 slot = session["slot"] 144 slot = next(iter(session["slots"]), {})
145 145
146 speaker_info = [] 146 speaker_info = []
147 for speaker in session.get("speakers", {}): 147 for speaker in session.get("speakers", {}):
@@ -181,7 +181,7 @@ def filter_keys_fullnarp(session, speakers):
181 "duration": 60 * session.get("duration", 40), 181 "duration": 60 * session.get("duration", 40),
182 "event_id": session["code"], 182 "event_id": session["code"],
183 "language": session.get("content_locale", "de"), 183 "language": session.get("content_locale", "de"),
184 "track_id": session["track_id"], 184 "track_id": session["track"],
185 "speakers": speaker_info, 185 "speakers": speaker_info,
186 "speaker_names": ", ".join( 186 "speaker_names": ", ".join(
187 [speaker.get("name", "unnamed") for speaker in session.get("speakers", {})] 187 [speaker.get("name", "unnamed") for speaker in session.get("speakers", {})]
@@ -194,27 +194,28 @@ def filter_keys_fullnarp(session, speakers):
194 194
195def fetch_talks(config): 195def fetch_talks(config):
196 sess = requests.Session() 196 sess = requests.Session()
197 197 headers = {'Accept': 'application/json',
198 response = sess.get( 198 'Authorization': "Token " + config['pretalx-token'],
199 config["pretalx-api-url"] + "/submissions/?format=json&limit=20000", 199 'Pretalx-Version' : 'v1'}
200 stream=True, 200
201 headers={"Authorization": "Token " + config["pretalx-token"]}, 201 speakers_result = []
202 ) 202 url = config['pretalx-api-url'] + '/speakers/?format=json&limit=20000'
203 # with open('dump.txt', mode='wb') as localfile: 203 while url:
204 # localfile.write(response.content) 204 response = sess.get(url, stream=True, headers=headers).json()
205 talks_json = json.loads(response.text) 205 speakers_result.extend(response['results'])
206 206 url = response['next']
207 response = sess.get( 207 speakers = { speaker['code']: speaker for speaker in speakers_result }
208 config["pretalx-api-url"] + "/speakers/?format=json&limit=20000", 208
209 stream=True, 209 session_results = []
210 headers={"Authorization": "Token " + config["pretalx-token"]}, 210 url = config['pretalx-api-url'] + '/submissions/?expand=speakers,slot,speakers.availabilities&format=json&limit=20000'
211 ) 211 while url:
212 speakers_json = json.loads(response.text) 212 response = sess.get(url, stream=True, headers=headers).json()
213 speakers = dict((speaker["code"], speaker) for speaker in speakers_json["results"]) 213 session_results.extend(response['results'])
214 url = response['next']
214 215
215 sessions = [ 216 sessions = [
216 filter_keys_halfnarp(submission) 217 filter_keys_halfnarp(submission)
217 for submission in talks_json["results"] 218 for submission in session_results
218 if submission["state"] == "confirmed" 219 if submission["state"] == "confirmed"
219 and not "non-public" in submission.get("tags", {}) 220 and not "non-public" in submission.get("tags", {})
220 ] 221 ]
@@ -223,7 +224,7 @@ def fetch_talks(config):
223 224
224 sessions = [ 225 sessions = [
225 filter_keys_fullnarp(submission, speakers) 226 filter_keys_fullnarp(submission, speakers)
226 for submission in talks_json["results"] 227 for submission in session_results
227 if submission["state"] == "confirmed" or submission["state"] == "accepted" 228 if submission["state"] == "confirmed" or submission["state"] == "accepted"
228 ] 229 ]
229 with open("var/talks_local_fullnarp", mode="w", encoding="utf8") as sessionsfile: 230 with open("var/talks_local_fullnarp", mode="w", encoding="utf8") as sessionsfile: