Add makewiki.py
Makewiki.py is a script that can be used to create mediawiki syntax from a groups JSON file in format for group portal use. This patch also changes Australia and New Zealand to move into the Asia Pacific region. Change-Id: Ifcc949f61fa0f1d1c3145c0781de159e144fa547
This commit is contained in:
parent
041742ef7e
commit
a90d9ec01f
@ -464,7 +464,7 @@
|
||||
"id": "a1341112-f9ea-4727-9171-a410e132eafe",
|
||||
"location": {
|
||||
"country": "AU",
|
||||
"continent": "OC",
|
||||
"continent": "AS",
|
||||
"lat": "0",
|
||||
"lng": "0"
|
||||
},
|
||||
@ -481,7 +481,7 @@
|
||||
"id": "d3e72761-f39f-41d3-8ac2-df0f717d905e",
|
||||
"location": {
|
||||
"country": "NZ",
|
||||
"continent": "OC",
|
||||
"continent": "AS",
|
||||
"lat": "0",
|
||||
"lng": "0"
|
||||
},
|
||||
|
99
makewiki.py
Normal file
99
makewiki.py
Normal file
@ -0,0 +1,99 @@
|
||||
#!/usr/bin/env python
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
# implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
""" Make the UserGroups Wiki page.
|
||||
|
||||
Takes a JSON file made for the User Group Portal and generates a mediawiki
|
||||
format page.
|
||||
"""
|
||||
|
||||
import json
|
||||
import logging
|
||||
|
||||
groups_json = json.load(open('groups.json'))
|
||||
groups = {}
|
||||
logger = logging.getLogger('makewiki')
|
||||
continent_names = {'AF': 'Africa', 'AS': 'Asia Pacific', 'EU': 'Europe',
|
||||
'ME': 'Middle East', 'NA': 'North America',
|
||||
'SA': 'South America'}
|
||||
|
||||
def nice_label(attribute):
|
||||
nice_labels = {'facebook': 'Facebook Group', 'meetup' : 'Meetup details here',
|
||||
'linkedin': 'LinkedIn Group', 'irc': 'IRC',
|
||||
'twitter': 'Twitter', 'website': 'Website',
|
||||
'google-groups': 'Google Group', 'blog': 'Blog',
|
||||
'coordinators': 'Coordinators',
|
||||
'google-plus': 'Google Plus Community',
|
||||
'mailing-list': 'Mailing List'}
|
||||
|
||||
if attribute in nice_labels:
|
||||
return nice_labels[attribute]
|
||||
else:
|
||||
return attribute
|
||||
|
||||
def make_header(continent_groups):
|
||||
print '__NOTOC__'
|
||||
print 'Welcome to the list of the OpenStack User Groups!'
|
||||
print
|
||||
print "Can't find one nearby? Want to start one? The\
|
||||
[[Teams#Community_team|OpenStack International Community team]] is your main\
|
||||
contact point. Join\
|
||||
[http://lists.openstack.org/cgi-bin/mailman/listinfo/community the mailing\
|
||||
list] and read [[OpenStackUserGroups/HowTo|the HowTo page]] if you are hosting\
|
||||
or want to start a user group with meetups, hackathons and other social events\
|
||||
talking about OpenStack and free/libre open source software for the cloud. You\
|
||||
can also edit this page to add your group, but remember - we're an [[Open]]\
|
||||
community."
|
||||
print
|
||||
print '<div style="column-count:3;-moz-column-count:3;-webkit-column-count:3">'
|
||||
for continent in sorted(continent_groups.iterkeys()):
|
||||
print ( "* '''[[#" + continent_names[continent] + '|' +
|
||||
continent_names[continent] + "]]'''" )
|
||||
for group in continent_groups[continent]:
|
||||
print "** [[#" + group + '|' + group + "]]"
|
||||
print '</div>'
|
||||
pass
|
||||
|
||||
def make_continent(continent):
|
||||
print "== " + continent_names[continent] + " =="
|
||||
|
||||
def make_group (group):
|
||||
print "=== " + group + " ==="
|
||||
for attribute in groups_json['groups'][group_indexes[group]]['attributes']:
|
||||
for key,value in attribute.iteritems():
|
||||
print '* ' + nice_label(key) + ': ' + value.encode('utf-8')
|
||||
print
|
||||
|
||||
|
||||
continents = []
|
||||
continent_groups = {}
|
||||
group_indexes = {}
|
||||
counter = 0
|
||||
for group in groups_json['groups']:
|
||||
continent = group['location']['continent']
|
||||
if continent not in continents:
|
||||
continents.append(continent)
|
||||
continent_groups[continent] = []
|
||||
continent_groups[continent].append(group['title'])
|
||||
group_indexes[group['title']] = counter
|
||||
counter = counter + 1
|
||||
|
||||
make_header(continent_groups)
|
||||
|
||||
for continent in continents:
|
||||
make_continent(continent)
|
||||
for group in continent_groups[continent]:
|
||||
make_group(group)
|
||||
|
Loading…
Reference in New Issue
Block a user