Python og WordPress

The Nusse Conglomerate har behov for at kunne automatisere hvad der ligger på en given side.

Mere præcist, jeg har brug for at lade diverse scripts, af typen internet-of-things, uploade data til nettet, og trække det ned igen.

Det kan gøres på mange måder, men af ideosynkratiske årsager, ønsker jeg at det skal spille sammen med WordPress. Så det kommer det til, come hell or high water.

Jeg er nået til at få uploadet data. Og efterfølgende også redigere det. Det gøres således:

import datetime, xmlrpclib
wp_url = “http://www.geekhome.dk/xmlrpc.php”
wp_username = “Her står brugernavnet”
wp_password = “Nej, jeg skriver nok ikke mit password her…”
wp_blogid = “”
status_draft = 0
status_published = 1
post_type=’page’

server = xmlrpclib.ServerProxy(wp_url)

title = “Title with spaces”
content = “Nu voldsomt redigeret”
#date_created = xmlrpclib.DateTime(datetime.datetime.strptime(“2011-10-20 21:08”, “%Y-%m-%d %H:%M”))
categories = [“category here”]
tags = [“sometag”, “othertag”]
data = {‘title’: title, ‘description’: content, ‘categories’: categories, ‘mt_keywords’: tags, ‘post_type’: post_type}

post_id = server.metaWeblog.editPost(wp_blogid, wp_username, wp_password, data, status_published)

Godt så. Det her er måden at redigere det på. Det kræver at man lige fortæller hvilket ID siden har (post_type fortæller at det er en page). Vi kunne kalde den for 42.

Skal siden derimod oprettes, er det newPost der skal stå i serverkaldet. Og er det et blogindlæg kan man fjerne post_type helt – det er som standard blogindlæg der oprettes på denne måde. Datoen er her udkommenteret. Den kan også sættes. Det er formentlig muligt at sætte hvad som helst.

Det var første trin, jeg kan nu få et pythonscript til at oprette og ændre i en side på wordpress. Næste trin er at få trukket data ud af en given side.

OK, langt om længe

En af de ting der har forsinket udviklingen i the Nusse conglomerate, har været flytningen af indhold fra den eksisterende Drupal installation på nesdunk.dk til en wordpress installation.

Ikke at jeg har noget som helst imod Drupal. Den taler til nørden i mig, og det var den jeg helst ville køre. Men…

WordPress har en funktion hvor der automatisk sker opdateringer af koden når der kommer sikkerhedsopdateringer. Det er der ikke i Drupal, af velbegrundede årsager. Men det er et problem når man i en travl hverdag skal holde et tocifret antal sites kørende og opdaterede. Så, derfor en migration til WordPress. Det er nu sket. Historiske indlæg tilbage til februar 2003 er flyttet med. Lækkert.