+#!/usr/bin/env python3
import requests
from os import mkdir
from os.path import exists, isfile, isdir
def fetch():
- result = requests.get('http://stands.fosdem.org/submission/api/accepted')
+ result = requests.get('https://stands.fosdem.org/submission/api/accepted')
result.raise_for_status()
return result.json()
--- /dev/null
+#!/usr/bin/env python3
+import requests
+from os import mkdir
+from os.path import exists, isfile, isdir
+import re
+
+
+def fetch():
+ result = requests.get('https://stands.fosdem.org/submission/api/themes')
+ result.raise_for_status()
+ return result.json()
+
+
+def slug(name):
+ illegal_r = re.compile('[^A-Za-z0-9_-]')
+ return illegal_r.sub('-', name.lower())
+
+
+def create_skeleton(theme_o):
+ path = '../content/themes/{0}'.format(slug(theme_o['theme']))
+ static_path = '../static/themes/{0}'.format(slug(theme_o['theme']))
+ if not exists(path):
+ mkdir(path)
+ if not exists(static_path):
+ mkdir(static_path)
+ _index = """---
+title: {0}
+description: |
+ {1}
+logo: img/lib/material-icons/{2}.svg
+---
+""".format(
+ theme_o['theme'],
+ theme_o['description'],
+ slug(theme_o['theme'])
+)
+ if not exists('{0}/_index.md'.format(path)):
+ with open('{0}/_index.md'.format(path), 'w') as fh:
+ fh.write(_index)
+
+
+def main():
+ print('Fetching list of themes ... ', end=None)
+ try:
+ themes = fetch()
+ except Exception as e:
+ print('[FAILED]')
+ print('\t\t {0}'.format(e))
+ return(10)
+ else:
+ print('[OK]')
+ for theme in themes:
+ print('Creating skeleton for {0} ... '.format(theme['theme']), end=None)
+ try:
+ create_skeleton(theme)
+ except Exception as e:
+ print('[FAILED]')
+ print('\t\t {0}'.format(e))
+ else:
+ print('[OK]')
+ return 0
+
+
+
+if __name__ == '__main__':
+ exit(main())
+
--- /dev/null
+#!/usr/bin/env python3
+import requests
+from os import mkdir
+from os.path import exists, isfile, isdir
+
+
+def fetch():
+ result = requests.get('http://localhost:8000/submission/api/accepted')
+ result.raise_for_status()
+ return result.json()
+
+
+def create_skeleton(stand_o):
+ path = '../content/stands/{0}'.format(stand_o['submission']['project']['name'].lower())
+ static_path = '../static/stands/{0}'.format(stand_o['submission']['project']['name'].lower())
+ if exists('{0}/.git'.format(path)):
+ # Pull
+ cmd = 'git pull origin master'
+ else:
+ # Clone
+ cmd = 'git clone {0}'.format(stand_o['submission']['digital_edition']['stand_website_code'])
+ if exists('{0}/.git'.format(static_path)):
+ # Pull
+ static_cmd = 'git pull origin master'
+ else:
+ # Clone
+ static_cmd = 'git clone {0}'.format(stand_o['submission']['digital_edition']['stand_website_static'])
+
+
+def main():
+ print('Fetching list of accepted stands ... ', end=None)
+ try:
+ accepted_stands = fetch()
+ except Exception as e:
+ print('[FAILED]')
+ print('\t\t {0}'.format(e))
+ return(10)
+ else:
+ print('[OK]')
+ for stand in accepted_stands:
+ print('Pulling code for {0} ... '.format(stand['submission']['project']['name']), end=None)
+ try:
+ create_skeleton(stand)
+ except Exception as e:
+ print('[FAILED]')
+ print('\t\t {0}'.format(e))
+ else:
+ print('[OK]')
+ return 0
+
+
+
+if __name__ == '__main__':
+ exit(main())
+