From: blizzard Date: Sat, 18 Oct 2008 06:11:55 +0000 (+0000) Subject: 2008-10-18 Christopher Blizzard X-Git-Url: http://git.etc.gen.nz/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9b4c5bee1ad18452a6b4b8326fa124fa605a6dbc;p=whoisi.git 2008-10-18 Christopher Blizzard * utils/convert-flickr-ids.py: Script to fix all of the !#@&*#^@* flickr ids in the database. Flickr uses different IDs for Atom and RSS2 feeds! git-svn-id: svn://trac.whoisi.com/whoisi/trunk@7 ae879524-a8bd-4c4c-a5ea-74d2e5fc5a2c --- diff --git a/ChangeLog b/ChangeLog index e89e499..dd647b8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-10-18 Christopher Blizzard + + * utils/convert-flickr-ids.py: Script to fix all of the !#@&*#^@* + flickr ids in the database. Flickr uses different IDs for Atom + and RSS2 feeds! + 2008-10-17 Christopher Blizzard * feed-parse-service (FeedParseProtocol.runCommand): Someone get diff --git a/utils/convert-flickr-ids.py b/utils/convert-flickr-ids.py new file mode 100755 index 0000000..47beb09 --- /dev/null +++ b/utils/convert-flickr-ids.py @@ -0,0 +1,66 @@ +#!/usr/bin/python + +# Copyright (c) 2007-2008 Christopher Blizzard +# +# Permission is hereby granted, free of charge, to any person +# obtaining a copy of this software and associated documentation files +# (the "Software"), to deal in the Software without restriction, +# including without limitation the rights to use, copy, modify, merge, +# publish, distribute, sublicense, and/or sell copies of the Software, +# and to permit persons to whom the Software is furnished to do so, +# subject to the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +import simplejson +import MySQLdb +import re + +import sys +sys.path.append("..") +import services.config as config +config.read("utils.cfg") + +db = MySQLdb.connect(db=config.get("db", "db"), + user=config.get("db", "user"), + passwd=config.get("db", "passwd")) + +c = db.cursor() +q = """ + SELECT id, entry_id FROM site_history WHERE + site_id IN (SELECT id FROM site WHERE + type = 'flickr') + """ +#q = "SELECT id, entry_id from site_history where site_id = 12" + +c.execute(q) + +r = c.fetchone() + +while r: + e_id = r[0] + guid = r[1] + + print e_id, guid + + if guid: + match = re.match('tag:flickr.com,2005:/photo/(.+)', guid) + if match: + new_guid = 'tag:flickr.com,2004:/photo/' + match.group(1) + q2 = "UPDATE site_history set entry_id = %s where id = %s" + c2 = db.cursor() + + print("updating to %s" % new_guid) + c2.execute(q2, [new_guid, e_id]) + + r = c.fetchone()