#!/usr/bin/env python import wordpresslib import getpass import subprocess import glob import socket # --------------------------------------------------------- # natsort.py: Natural string sorting. # --------------------------------------------------------- # By Seo Sanghyeon. Some changes by Connelly Barnes. def try_int(s): "Convert to integer if possible." try: return int(s) except: return s def natsort_key(s): "Used internally to get a tuple by which s is sorted." import re return map(try_int, re.findall(r'(\d+|\D+)', s)) def natcmp(a, b): "Natural string comparison, case sensitive." return cmp(natsort_key(a), natsort_key(b)) def natcasecmp(a, b): "Natural string comparison, ignores case." return natcmp(a.lower(), b.lower()) def natsort(seq, cmp=natcmp): "In-place natural string sort." seq.sort(cmp) def natsorted(seq, cmp=natcmp): "Returns a copy of seq, sorted by natural string sort." import copy temp = copy.copy(seq) natsort(temp, cmp) return temp print print "Nouse PDF Archiver" print "$Id: pdf-archive.py 1404 2009-04-09 21:45:59Z nouse $" print print "--------------------------------------------------------------------" print print "Authenticating to Wordpress..." # Grab authentication data wp_username = raw_input("Username: ") wp_password = getpass.getpass() print # Connect to XMLRPC wp = wordpresslib.WordPressClient('http://www.nouse.co.uk/xmlrpc.php', wp_username, wp_password) # Start building post post = wordpresslib.WordPressPost() which_edition = raw_input("Edition date: ") post.title = "PDF Archive: " + which_edition post.excerpt = "The PDF version of the paper from " + which_edition post.description = "" # User 5 = "nouse" post.user = 5 # Category 36 = PDF Archive post.categories = [36] # Get PDFs pdfs = glob.glob("*.pdf") pdfs = natsorted(pdfs) print for pdf in pdfs: # Generate JPEG print "Generating JPEG for " + pdf jpeg = pdf.split(".") ps = jpeg[0] + ".ps" jpeg = jpeg[0] + ".jpg" subprocess.call(["pdf2ps", pdf, ps]) subprocess.call(["convert", "-geometry", "195x1000", ps, jpeg]) # Upload that file print "Uploading PDF: " + pdf try: pdf_url = wp.newMediaObject(pdf) except socket.error: print "Upload failed, retrying" pdf_url = wp.newMediaObject(pdf) print "Uploading JPEG: " + jpeg try: jpeg_url = wp.newMediaObject(jpeg) except socket.error: print "Upload failed, retrying" jpeg_url = wp.newMediaObject(jpeg) # Insert into post post.description += '
' print post.description += '