Bunny-bg

Bunny-bg är ett enkelt script som jag använder för att generera en bakgrund med bunny-comics senaste seriestrip. Detta för att jag ska få mig ett gott skratt när jag slår på datorn. Jag har nämnt det tidigare men det är nu inne i sin tredje itteration och börjar nu se vettigt ut (så jag vågar visa upp resultatet). Först parsade jag html-koden direkt och körde en massa wget-kommandon, i version två använde jag socket-biblioteket och libxml2 för att ladda ner och parsa rss-flödet själv och nu i version 3 använder jag feedparser för allt besvärligt.

Behov:

Källkod:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

# file: feedbunny.py
#
# feedbunny downloads the latest bunny-comic
# and pastes it on top of another file and
# then saves the result in a third file.
# The intent is to create a background image
# with the latest bunny-comic strip.
#
# TODO: something should be done with
#                                       Title
#                                       Alt-text
#
# This software is licensed under the GPLv2
# license.

#
# Author: Ã…ke Forslund
#         (ake[dot]forslund[at]gmail[dot]com)
#         Take that evil spambots!
#
#
# Smoke me a kipper, I'll be back for breakfast
#

import os,sys
import re

import feedparser
import Image

originalBg = "bg.bmp"
newBg = "background.bmp"

bunnyFeedURL = "http://bunny-comic.com/rss/bunny.xml"
bf = feedparser.parse(bunnyFeedURL) #Bunny-feed not boy-friend...Sheeesh

title = bf['entries'][0]['title']

desc = bf['entries'][0]['description']

temp = re.split("\>", desc) #The first command is the <img src=comic.*>

temp = re.split("\"", temp[0])

stripURL = temp[1]
altText = temp[3]

#Get filename from stripURL
temp = re.split("\/", stripURL);

stripFile = temp[len(temp)-1]

h = os.popen("wget " + stripURL)

h.close()

#Create BG
bg = Image.open(originalBg)

addition = Image.open(stripFile)

box = (0, 0, addition.size[0], addition.size[1])

region = addition.crop(box)

yOffset = 10   #Pixels from the top

#left position for placing the image in center
centered = bg.size[0]/2 - addition.size[0]/2

box = (centered, yOffset, centered + addition.size[0], yOffset + addition.size[1])

bg.paste (region, box)

#cleanup
os.remove(stripFile)

#write back to disk
try:
  os.remove(newBg)
except:
  print "File does not exist, but that's not a real problem"

outFile = file(newBg, 'w')
bg.save(outFile, "BMP")

Ett svar to “Bunny-bg”

  1. Energetisk « Åke i exil Says:

    […] Projekt nummer två var att fixa iordning mitt script som laddar ner och visar den senaste bunny-strippen på mitt skrivbord. Tidigare använde jag libxml2 för att själv parsa seriens RSS-flöde nu valde jag att använda det aningen (läs mycket) smidigare biblioteket feedparser och resultatet blev ett litet smidigt script som jag till och med vågar visa andra. Nu finns det upplagt i menyn till höger under namnet bunny-bg. […]

Kommentera

Fyll i dina uppgifter nedan eller klicka på en ikon för att logga in:

WordPress.com Logo

Du kommenterar med ditt WordPress.com-konto. Logga ut / Ändra )

Twitter-bild

Du kommenterar med ditt Twitter-konto. Logga ut / Ändra )

Facebook-foto

Du kommenterar med ditt Facebook-konto. Logga ut / Ändra )

Google+ photo

Du kommenterar med ditt Google+-konto. Logga ut / Ändra )

Ansluter till %s


%d bloggare gillar detta: