Skip to content

Instantly share code, notes, and snippets.

@prophile
Created November 20, 2014 19:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save prophile/ba28cfc729897564c6bb to your computer and use it in GitHub Desktop.
Save prophile/ba28cfc729897564c6bb to your computer and use it in GitHub Desktop.
Update standard pages for SR Trac
from xmlrpc.client import ServerProxy as TracAPI
from xmlrpc.client import Fault as TracFault
from urllib.parse import quote
from getpass import getpass
from pathlib import Path
import sys
import time
username = input('SR Username: ')
password = getpass('SR Password: ')
URL = 'https://{un}:{pw}@www.studentrobotics.org/trac/login/xmlrpc'.format(un=quote(username),
pw=quote(password))
api = TracAPI(URL)
def copy_page(page, source):
if page == 'WikiStart': # DO NOT OVERRIDE WikiStart
return
with source.open('r') as f:
data = f.read()
try:
api.wiki.putPage(page, data, {'comment': 'Update page to latest from trac.edgewall.org'})
except TracFault:
print(' -> unchanged')
page_root = Path('trac/trac/wiki/default-pages')
for child in page_root.iterdir():
page = child.name
print('Copying page {}...'.format(page))
copy_page(page, child)
print(child.name)
time.sleep(2)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment