Drafts-Rezepte VIII: Down or just me?

Ein ganz kleines Rezept, um mal schnell zu checken, ob eine Seite wirklich down sein könnte oder der Fehler irgendwo auf meiner Seite liegt. Ich hatte das leidige Thema diese Woche zu oft, da war es ganz gut, mit Drafts schnell losschlagen zu können. Um den Service in Safari zu öffnen, sieht das alles so aus:

http://www.isup.me/[[draft]]

Will ich es in Chrome öffnen, ist das auch schnell erledigt:

googlechrome://www.isup.me/[[draft]]

Die Idee sollt also klar sein. Ist euer Browser nicht dabei sein, ist sein Handle vielleicht hier zu finden.

Will ich jetzt mal sehen, ob kultprok down ist, würde ich inDrafts einfach

kultprok.de

eingeben und dann die Action feuern. Okay, das ist natürlich reichlich dämliches Beispiel, weil ich zuverlässigere Wege habe, um festzustellen, ob mein Server noch läuft. Aber na ja, der Gedanke zählt.

Drafts-Rezepte V: Wetterdaten mit OpenWeatherMap

Ich habe mir wieder ein kleines Skript (current_weather.py) gebastelt, mit dem ich für einen beliebigen Ort die aktuelle Temperatur und Luftfeuchtigkeit erhalte. Als Datenquelle dient die API von OpenWeatherMap, abgerufen wird es wieder über Pythonista. Das Skript sieht folgendermaßen aus:

# -*- coding: utf-8 -*-
import clipboard
from console import alert
from json import loads
from sys import argv, exit
from urllib import urlopen, quote
import webbrowser

def error_dialog(title, message):
  '''A diaolog box for error messages.'''
	try:
		alert(title, message)
	except KeyboardInterrupt:
		pass
	webbrowser.open('drafts://')
	exit(message)

def filter_data(data):
	'''create output string from response'''
	weather = loads(data)
	temperature = weather['main']['temp']
	humidity = weather['main']['humidity']
	output = 'Temperatur: {0} Celsius\nLuftfeuchtigkeit: {1}%'.format(temperature, humidity)
	return output

def get_current_weather_in(data):
	'''get current weather data'''
	api_url_base = 'http://api.openweathermap.org/data/2.5/weather?q={0}&units=metric&lang=de'
	try:
		response = urlopen(api_url_base.format(data))
	except IOError:
		error_dialog('Connection Error', 'Unable to perform request.')
	if response.getcode() == 200:
		weather_data = filter_data(response.read())
		webbrowser.open('drafts://x-callback-url/create?text={0}'.format(quote(weather_data)))
	else:
		error_dialog('Error', 'Status code: {0} - Message: {1}'.format(response.getcode(), response.read()))

if __name__ == '__main__':
	get_current_weather_in(argv[1])

Gist

Das Skript kann dann über die Drafts-Action ausgeführt werden:

pythonista://current_weather?action=run&argv=[[draft]]

Import-Link

Im Grunde war das auch schon alles. In Drafts muss dann in einer neuen Notiz nur der Name der Stadt eingegeben werden. Gegebenenfalls sollte sicherheitshalber noch das Land hinzugefügt werden. So würde Hamburg, de mir die aktuelle Temperatur und Luftfeuchtigkeit für Hamburg geben.

Drafts-Rezepte I: Yubnub

Mit Drafts ist die Automatisierung auf iOS sehr viel einfacher geworden. Ich habe mir vorgenommen, in der nächsten Zeit mal ein paar nützliche Rezepte zu posten, die den Alltag erleichtern können. Spätestens wenn Pythonista ins Spiel kommt, wird es etwas komplexer. Den Anfang will ich aber mit einem vergleichsweise einfachen Fall machen, der mir das Leben aber ungemein erleichtert.

Ich habe noch nie einen Hehl aus meiner Begeisterung für Yubnub* gemacht. Auf dem Desktop wandele ich alle Browser-Adresszeilen in eine Art Kommandozeile für’s Web ab. Da das Web zu durchsuchen unter iOS eine Qual ist, hätte ich gerne Yubnub auch dort. Mit Drafts ist das sehr einfach. Ich lege ein neues Draft an, beispielsweise mit einem Yubnub-typischen Suchkürzel und den Suchbegriffen wie etwa g iPhone Bumper. In diesem Fall würde Yubnub die Anfrage nach iPhone Bumper an Google weiterleiten. Dann löse ich zum Beispiel folgende URL-Action auf den Draft aus:

Safari

http://yubnub.org/parser/parse?command=[[draft]]

Import-Link

Aber nicht alle von uns wollen im schnöden Safari durchs Web. Auch da lässt sich was machen, solange ein installierter Browser sich mit einem URL-Schema bei iOS angemeldet hat.

Chrome

googlechrome://yubnub.org/parser/parse?command=[[draft]]

Import-Link

Dolphin

dolphin://http://yubnub.org/parser/parse?command=[[draft]]

Import-Link

Das sind nur Beispiele für eine Vielzahl von iOS-Browsern, die das Schema unterstützen und damit auch nun mit Yubnub mehr Komfort ins mobile Surfen bringen. Ein Liste mit weiteren Browsern findet sich bei HandleOpenURL. Das Schema muss in der Regel nur um die Browserbezeichnung ergänzt werden.

In den kommenden Tagen werden hier noch mehr Rezepte für URL-Actions aufschlagen. Das war bislang nur der Anfang. Es geht noch sehr viel mehr.

* Yubnub als zwischengeschalteter Dienst kann natürlich alle Suchanfragen protokollieren – zusätzlich zu den eigentlichen Zielseiten. Die Abwägung von Nutzen und Datenschutzaspekten kann ich niemandem abnehmen.