commit a50d1f13385d78cdef9faa01d45d349af7d697b6
Author: Pete Travis <immanetize(a)fedoraproject.org>
Date: Fri Feb 28 16:33:43 2014 -0700
framing up functionality to store beat writers instructions in each beats talk: page
tools/pybeats/beats.py | 101 ++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 89 insertions(+), 12 deletions(-)
---
diff --git a/tools/pybeats/beats.py b/tools/pybeats/beats.py
index d7bd0bb..7cb5008 100644
--- a/tools/pybeats/beats.py
+++ b/tools/pybeats/beats.py
@@ -1,14 +1,10 @@
#!/usr/bin/python
import mwclient
import sys
+import os
-username = 'yourFASID'
-password = 'DEADBEEF'
-site = mwclient.Site('fedoraproject.org', path = '/w/')
-if username and password:
- site.login(username, password)
-
-beats = ( "Documentation_Beats_Installer",
+def beats_list():
+ beat_list = ( "Documentation_Beats_Installer",
"Documentation_Architecture_Specific_Content_Beat",
"Documentation_x86_Specific_Content_Beat",
"Documentation_x86_64_Specific_Beat",
@@ -57,7 +53,60 @@ beats = ( "Documentation_Beats_Installer",
"Documentation_Musicians_Beat",
"Documentation_Monitoring_Beat"
)
+ return beat_list
+
+# this just doesn't work
+#beatlist = beats_list()
+#sys.path.append( '%s/beats_info' % os.getcwd() )
+#for beat in beatlist:
+# print("importing %s" % beat)
+# try:
+# module_object = __import__(beat)
+# except:
+# print("failed to open module object for %s" % beat)
+# try:
+# locals()[beat] = module_object
+# except:
+# print("import of %s beat failed" % beat)
+
+def create_beats_skeleton():
+ beatlist = beats_list()
+ if not os.path.isdir("beats_info"):
+ os.mkdir("beats_info")
+ initfile = "beats_info/__init__.py"
+ doinit = open(initfile, 'w')
+ doinit.write('#!/usr/bin/python')
+ doinit.close()
+ for beat in beatlist:
+ filename = "beats_info/" + beat + ".py"
+ # filename = beat + ".py"
+ f = open(filename, 'w')
+ f.write('#!/usr/bin/python\n\n')
+ f.write('###\n# Beat definition and guidance for %s\n###\n\n' % beat)
+ f.write('def return_beat():\n')
+ f.write(' beat = {}\n')
+ f.write(' beat[\'beat_name\'] = "%s"\n' % beat)
+ f.write(' beat[\'beat_overview\'] = ""\n')
+ f.write(' beat[\'suggested_packages\'] = ()\n')
+ f.write(' beat[\'suggested_contacts\'] = ()\n')
+ f.write(' beat[\'suggested_reading\'] = ()\n')
+ f.write(' return(beat)\n')
+ f.close()
+#try:
+# import_beats()
+## import beats_info
+#except:
+# print("import fail")
+# create_beats_skeleton()
+#
+
+def setup_wiki_connection(username, password):
+ site = mwclient.Site('fedoraproject.org', path = '/w/')
+ if username and password:
+ site.login(username, password)
+ return site
+
footer = """
[[Category:Docs Project]]
[[Category:Draft documentation]]
@@ -66,9 +115,37 @@ footer = """
header = "{{header|docs}}"
docs_beat_open = "{{Docs_beat_open}}"
-for beat in beats:
- page = site.Pages[beat]
- text = page.edit()
- string = header + docs_beat_open + footer
- page.save(string)
+def clearbeats(beats, string):
+ for beat in beats:
+ page = site.Pages[beat]
+ text = page.edit()
+ string = header + docs_beat_open + footer
+ page.save(string)
+
+def update_talk():
+ beatlist = beats_list()
+ for beat in beatlist:
+ module = __import__(beat)
+ info = module.return_beat()
+ talk_page = "Talk:" + beat
+ page = site.Pages[talk_page]
+ talk_string = "{{admon/important|Page is autogenerated|This page is
autogenerated by pybeats in tools.git . Discuss your beat on the docs mailing list,
directions only here.}}\n"
+ talk_string += "==%s Writer Guide==\n" % info['beat_name']
+ talk_string += "===Overview===\n%s\n" % info['beat_overview']
+ talk_string += "===Suggested Packages===\n"
+ for package in info['suggested_packages']:
+ if package:
+ talk_string += "* %s\n" % package
+ talk_string += "===Suggested Reading===\n"
+ for homework in info['suggested_reading']:
+ if homework:
+ talk_string += "* %s\n" % homework
+ talk_string += "===Suggested Contacts===\n"
+ for person in info['suggested_contacts']:
+ if person:
+ talk_string += "* %s\n" % person
+
+
+
+
Show replies by date