#!/usr/bin/env python import sys SEND_MESSAGE_URL = "http://openstreetmap.org/message/new/%d" # BEWARE: all non-7-bit ascii characters (umlauts and so on ...) are ignored message_title = "Neue regionale Mailingliste fuer Mecklenburg-Vorpommern" message_body_template = """Hallo %s, du erhaeltst diese Nachricht, da du aus Mecklenburg-Vorpommern kommst oder weil du mehr als 500 Nodes bzw. Wege in MV bearbeitet hast. Seit heute gibt es eine neue regionale OSM-Mailingliste fuer Mecklenburg-Vorpommern. Die Liste wird hoffentlich ein hilfreiches Medium zur Diskussion lokaler Themen, zur Planung von Mapping-Parties oder einfach nur zur gegenseitigen Wahrnehmung der verstreuten Nachbarn werden. Wenn du am Fortschritt von OSM in Mecklenburg-Vorpommern interessiert bist, dann trage dich doch bitte in die neue Mailingliste ein: http://lists.openstreetmap.de/cgi-bin/mailman/listinfo/meckpomm Vielleicht schaffen wir es ja trotz der derzeit unwirtlichen Wetterzustaende in Kuerze mal eine Mapping-Party zu organisieren, um langsam die zahlreichen weissen Flecken von MV zu verschoenern ... Eventuell bis bald auf der Mailingliste, Lars PS: falls dich die regionale Mailingliste nicht interessiert, dann ignoriere diese Nachricht einfach. Du wirst keine weiteren Nachrichten mehr erhalten. """ # return a html encoded representation (e.g. %20 for a space) # ignore 8-bit ascii characters def mask_text(text): result = "" for char in text: num = ord(char) if num > 127: # non-ascii (7-bit) pass elif num > 15: # two digits result += "%" + hex(num)[2:] else: # one digit result += "%0" + hex(num)[2:] return result def generate_URL(username, user_id): message = mask_text(message_body_template % username) title = mask_text(message_title) return (SEND_MESSAGE_URL + "?message[title]=%s&message[body]=%s") % \ (user_id, title, message) def generate_html_link(username, link): return "
  • %s
  • \n" % (link, username) if __name__ == "__main__": if len(sys.argv) == 3: username = sys.argv[1] try: user_id = int(sys.argv[2]) except ValueError: sys.stderr.write("invalid user id: %s\n" % sys.argv[2]) sys.exit(2) print generate_html_link(username, generate_URL(username, user_id)) else: sys.stderr.write("invalid input\n") sys.exit(1) sys.exit(0)