summaryrefslogtreecommitdiff
path: root/etherpad2git
diff options
context:
space:
mode:
Diffstat (limited to 'etherpad2git')
-rwxr-xr-xetherpad2git49
1 files changed, 49 insertions, 0 deletions
diff --git a/etherpad2git b/etherpad2git
new file mode 100755
index 0000000..5e9891c
--- /dev/null
+++ b/etherpad2git
@@ -0,0 +1,49 @@
+#!/usr/bin/env python3
+
+import os
+import subprocess
+import sys
+
+import requests
+
+
+base_url = 'https://etherpad.wikimedia.org/p'
+savedir = os.path.expanduser('~/wmf/etherpads')
+
+def load_names(filename):
+ return open(filename).read().splitlines()
+
+
+def pad_url(base_url, name):
+ return '{}/{}/export/txt'.format(base_url, name)
+
+
+def get_pad(url):
+ r = requests.get(url)
+ if not r.ok:
+ raise Exception(
+ 'Failed to GET {}: {} {}'.format(url, r.status_code, r.text))
+ return r.text
+
+
+def save_text(savedir, name, text):
+ with open(os.path.join(savedir, name), 'w') as f:
+ f.write(text)
+
+
+for filename in sys.argv[1:]:
+ names = load_names(filename)
+ for name in names:
+ url = pad_url(base_url, name)
+ text = get_pad(url)
+ save_text(savedir, name, text)
+
+
+output = subprocess.check_output(
+ ['git', 'status', '--porcelain'], cwd=savedir)
+if output:
+ subprocess.check_call(['git', 'add', '.'], cwd=savedir)
+ subprocess.call(['git', 'commit', '-qm', 'Autoadd', '.'], cwd=savedir)
+ print('OK. Added new and changed files to git.')
+else:
+ print('OK. Nothing to do.')