Skip to content
Snippets Groups Projects
Commit eb74c6a7 authored by Lukas Ruge's avatar Lukas Ruge
Browse files

add media ticket generator

parent 78809c1d
No related branches found
No related tags found
No related merge requests found
Pipeline #7308 passed
# requires requests==2.28.2
# requires xmltodict=0.13.0
# requires python-frontmatter==1.0.0
import requests
import xmltodict
import frontmatter
import glob
import os
import sys
api_key = os.environ.get('REDMINE_API_KEY')
known_uids = []
url = 'https://chaotikum.org/conferences/all/frab.xml'
response = requests.get(url)
data = xmltodict.parse(response.content)
for day in data['schedule']['day']:
if 'event' in day['room']:
if '@guid' in day['room']['event']:
known_uids.append(day['room']['event']['@guid'])
else:
for event in day['room']['event']:
known_uids.append(event['@guid'])
else:
for room in day['room']:
if '@guid' in room['event']:
known_uids.append(room['event']['@guid'])
else:
for event in room['event']:
known_uids.append(event['@guid'])
files = glob.glob('_media/*.md')
for file in files:
post = frontmatter.load(file)
if 'uid' in post.keys():
uid = post['uid']
if uid not in known_uids:
if api_key is None:
print("No environment variable REDMINE_API_KEY present.", file=sys.stderr)
sys.exit(1)
else:
print('new uid, create ticket in redmine')
title = post['title']
content = post.content
print('Title:' + title)
print('uid:' + uid)
print(content)
# https://www.redmine.org/projects/redmine/wiki/rest_issues
# https://www.redmine.org/projects/redmine/wiki/rest_api
# https://www.redmine.org/issues/31186
url = f"https://redmine.chaotikum.org/issues.json?key={api_key}"
post_content = {}
post_content['issue'] = {};
post_content['issue']["project_id"] = 38
post_content['issue']["subject"] = title
post_content['issue']["description"] = content
post_content['issue']["custom_fields"] = []
uuid_field = {}
uuid_field['id'] = 11
uuid_field['value'] = uid
uuid_field['name'] = "Video-UUID"
post_content['issue']["custom_fields"].append(uuid_field)
speaker_field = {}
speaker_field['id'] = 8
speaker_field['value'] = "Speaker"
speaker_field['name'] = "Sprecher"
post_content['issue']["custom_fields"].append(speaker_field)
r = requests.post(url=url, json=post_content)
print(r.json())
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment