示例#1
0
	def test_parseWiki_wrongWeekday(self):
		now = cg.tz.localize(datetime.datetime(2014, 10, 10, 10, 10))
		result = cg.parse_wiki_page(open("tests/wiki/wrong_weekday.wiki").read())
		self.assertEqual(len(result), 1)
		self.assertEqual(len(cg.expand_dates(result)), 0)
		cg.generate_wiki_section(cg.expand_dates(result), "templates/termine_haupt.de.wiki", cg.LANG_DE, now=now)
		cg.generate_ical(result, "/dev/null")
示例#2
0
	def test_parseWiki_wrongWeekday(self):
		now = cg.tz.localize(datetime.datetime(2014, 10, 10, 10, 10))
		result = cg.parse_wiki_page(file("tests/wiki/wrong_weekday.wiki").read().decode("utf8"))
		self.assertEqual(len(result), 1)
		self.assertEqual(len(cg.expand_dates(result)), 0)
		cg.generate_wiki_section(cg.expand_dates(result), "templates/termine_haupt.de.wiki", cg.LANG_DE, now=now)
		cg.generate_ical(result, "/dev/null")
示例#3
0
    def test_wrong_date(self):
        content = """ == <context> ==
		| some party || 22.05.2015 - 20.05.2015 ||
		| some party || 22.05.2015 - 21.05.2015 ||
		| some party || 22.05.2015 20:00 - 22.05.2015 03:00 ||
		| some party || 22.05.2015 20:00 - 03:00 ||
		"""
        result = cg.parse_wiki_page(content)
        for entry in result:
            self.assertLessEqual(entry.start_datetime(), entry.end_datetime())
        self.assertEqual(len(result), 1)
示例#4
0
	def test_wrong_date(self):
		content = """ == <context> ==
		| some party || 22.05.2015 - 20.05.2015 ||
		| some party || 22.05.2015 - 21.05.2015 ||
		| some party || 22.05.2015 20:00 - 22.05.2015 03:00 ||
		| some party || 22.05.2015 20:00 - 03:00 ||
		"""
		result = cg.parse_wiki_page(content)
		for entry in result:
			self.assertLessEqual(entry.start_datetime(), entry.end_datetime())
		self.assertEqual(len(result), 1)
示例#5
0
	def test_parseWiki(self):
		now = cg.tz.localize(datetime.datetime(2014, 10, 10, 10, 10))
		result = cg.parse_wiki_page(open("tests/wiki/general.wiki").read())
		for entry in result:
			if isinstance(entry, cg.Generator):
				for subentry in entry.entries:
					self.assertLessEqual(subentry.start_datetime(), subentry.end_datetime())
			else:
				self.assertLessEqual(entry.start_datetime(), entry.end_datetime())

		cg.generate_wiki_section(cg.expand_dates(result), "templates/termine_haupt.de.wiki", cg.LANG_DE, now=now)
		cg.generate_ical(result, "/dev/null")
		self.assertEqual(len(result), 13)
示例#6
0
	def test_parseWiki(self):
		now = cg.tz.localize(datetime.datetime(2014, 10, 10, 10, 10))
		result = cg.parse_wiki_page(file("tests/wiki/general.wiki").read().decode("utf8"))
		for entry in result:
			if isinstance(entry, cg.Generator):
				for subentry in entry.entries:
					self.assertLessEqual(subentry.start_datetime(), subentry.end_datetime())
			else:
				self.assertLessEqual(entry.start_datetime(), entry.end_datetime())

		cg.generate_wiki_section(cg.expand_dates(result), "templates/termine_haupt.de.wiki", cg.LANG_DE, now=now)
		cg.generate_ical(result, "/dev/null")
		self.assertEqual(len(result), 13)
示例#7
0
#!/usr/bin/env python3
# -.- encoding: utf-8 -.-
import mwclient
import datetime
import time
import config
import calendargenerator
import os

if __name__ == "__main__":
	site = mwclient.Site((config.protocol, config.server), path="/mediawiki/")

	termine = site.Pages["Termine"]
	comment = None
	entries = calendargenerator.parse_wiki_page(termine.text())
	expanded_entries = calendargenerator.expand_dates(entries)

	def update(entries, page, purge_page, templatefile, lang):
		global comment
		templatefile = os.path.join(os.path.dirname(__file__), templatefile)
		page_data = site.Pages[page]
		old = page_data.text()
		text = calendargenerator.generate_wiki_section(entries, templatefile, lang)
		if old != text:
			print("updating %s" % page)
			if not comment:
				rev = termine.revisions(limit=1, prop='timestamp|user|comment').next()
				changed = datetime.datetime.fromtimestamp(time.mktime(rev["timestamp"]))
				now = datetime.datetime.utcnow()
				comment = u"Automatisches Update (irgendwas wird sich schon verändert haben)"
				if (now - changed) < datetime.timedelta(minutes=15):
示例#8
0
#!/usr/bin/env python
# -.- encoding: utf-8 -.-
import mwclient
import datetime
import time
import config
import calendargenerator
import os

site = mwclient.Site((config.protocol, config.server), path="/mediawiki/")

termine = site.Pages["Termine"]
comment = None
entries = calendargenerator.parse_wiki_page(termine.text())
expanded_entries = calendargenerator.expand_dates(entries)


def update(entries, page, purge_page, templatefile, lang):
    global comment
    templatefile = os.path.join(os.path.dirname(__file__), templatefile)
    page_data = site.Pages[page]
    old = page_data.text()
    text = calendargenerator.generate_wiki_section(entries, templatefile, lang)
    if old != text:
        print "updating %s" % page
        if not comment:
            rev = termine.revisions(limit=1,
                                    prop='timestamp|user|comment').next()
            changed = datetime.datetime.fromtimestamp(
                time.mktime(rev["timestamp"]))
            now = datetime.datetime.utcnow()
示例#9
0
#!/usr/bin/env python
# -.- encoding: utf-8 -.-
import mwclient
import datetime
import time
import calendargenerator

site = mwclient.Site(('https', 'stratum0.org'), path="/mediawiki/")

termine = site.Pages["Termine"]
data = termine.edit()
parsed = calendargenerator.expand_dates(calendargenerator.parse_wiki_page(data))

print calendargenerator.generate_wiki_section(parsed, "templates/termine_haupt.de.wiki", calendargenerator.LANG_DE)
print "-" * 20
print calendargenerator.generate_wiki_section(parsed, "templates/termine_haupt.en.wiki", calendargenerator.LANG_EN)
print "-" * 20
print calendargenerator.generate_wiki_section(parsed, "templates/termine_haupt.fr.wiki", calendargenerator.LANG_FR)