I've done a quick hack for duplicate detection, if you want ro run with the
idea.
Attached is the diff.
On 12/30/06, Dirk Meyer <[EMAIL PROTECTED]> wrote:
Hi,
"Andrew Flegg" wrote:
> Anamorphic skin
> ~~~~~~~~~~~~~~~
> I've got a 16:9 CRT TV in the UK, connected over S-Video. X is running
> at 800x600 (with overscan). Since the TV stretches the image
> horizontally, this means non-square pixels. The current themes look
> rather "fat" like this, so I'm thinking of working on an anamorphic
> skin which would look better on these widescreen TVs.
>
> Since I'm not an artist, I imagine this will mostly be done by
> squishing images in a current theme horizontally, and modifying the
> co-ordinates to take it into account. Since font width/height can't be
> specified separately, I'm currently using Deja Vu Sans Condensed,
> which looks alright stretched back out.
>
> Is there such a theme already, or would there be a better way of
> scaling everything horizontally (perhaps in kaa?) giving the ability
> to define a theme which has ~1400 pixels horizontally to play with,
> which get squished to 800 on output?
I know this problem. I now also have a 16:9 tv. I have square pixels
(running Freevo on 1360x768) but the skin still looks kind of odd. The
next gui redesign will get some information about monitor aspect to
fix this. But I don't use 1.x anymore (I don't even know the code), so
a simple 16:9 skin should be created by someone.
> Ideally when scheduling favourites, it would look through the list of
> previously recorded programmes and identify duplicates by subtitle or
> - if no subtitle - description. It'd then not record it again.
Nice idea.
Dischi
--
Clothes make the man. Naked people have little or no influence on
society. - Mark Twain
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share
your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Freevo-devel mailing list
Freevo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freevo-devel
Index: src/helpers/recordserver.py
===================================================================
--- src/helpers/recordserver.py (revision 8873)
+++ src/helpers/recordserver.py (working copy)
@@ -27,10 +27,16 @@
# -----------------------------------------------------------------------
-import sys, string, random, time, os, re, pwd, stat, threading
+import sys, string, random, time, os, re, pwd, stat, threading, pickle
import config
from util import vfs
+##sql database util
+try:
+ from util.dbutil import *
+except ImportError:
+ pass
+
appname = os.path.splitext(os.path.basename(sys.argv[0]))[0]
appconf = appname.upper()
@@ -252,7 +258,69 @@
pass
return TRUE
+
+ def duplicate(self, prog=None):
+ # Geta sql object
+ db = MetaDatabase()
+ _debug_('Databse is available')
+
+ # Create initial table, if needed
+ dbschema = """CREATE TABLE tv (id INTEGER PRIMARY KEY, \
+ title VARCHAR(255), \
+ sub_title VARCHAR(255), \
+ desc VARCHAR(255), \
+ categories VARCHAR(255), \
+ ratings VARCHAR(255))"""
+ if not db.checkTable('tv'):
+ _debug_('Create TV table')
+ db.runQuery(dbschema)
+ _debug_('Databse is available and TV table exists')
+
+ # Iterate through the table and check for duplicates
+ query='SELECT *,COUNT(title) FROM tv GROUP BY title HAVING
COUNT(title)>=1'
+ results=db.runQuery(query)
+ if results:
+ duplicateProgram=False
+ _debug_('Program: "%s" "%s" "%s"' % \
+ (prog.title, prog.sub_title, prog.desc))
+ for row in results:
+ _debug_('Previous: "%s" "%s" "%s"' % \
+ (row['title'], row['sub_title'], row['desc']))
+ if row['title'] == prog.title and row['sub_title'] ==
prog.sub_title:
+ duplicateProgram=True
+ _debug_('Found Duplicate w/ title and
sub_title')
+ if row['title'] == prog.title and row['desc'] ==
prog.desc:
+ duplicateProgram=True
+ _debug_('Found Duplicate w/ title and desc')
+ if duplicateProgram==False:
+ values = "(null,\'%s\',\'%s\',\'%s\',\'%s\',\'%s\')" % \
+ (util.escape(prog.title), \
+ util.escape(prog.sub_title), \
+ util.escape(prog.desc), \
+ util.escape(pickle.dumps(prog.categories)), \
+ util.escape(pickle.dumps(prog.ratings)))
+ sql = 'INSERT OR IGNORE INTO tv VALUES '+values
+ _debug_(sql)
+ db.runQuery(sql)
+ _debug_('Not Duplicate')
+ db.close()
+ return FALSE
+ else:
+ values = "(null,\'%s\',\'%s\',\'%s\',\'%s\',\'%s\')" % \
+ (util.escape(prog.title), \
+ util.escape(prog.sub_title), \
+ util.escape(prog.desc), \
+ util.escape(pickle.dumps(prog.categories)), \
+ util.escape(pickle.dumps(prog.ratings)))
+ sql = 'INSERT OR IGNORE INTO tv VALUES '+values
+ _debug_(sql)
+ db.runQuery(sql)
+ _debug_('No previous recordings, so not duplicate')
+ db.close()
+ return FALSE
+ db.close()
+ return TRUE
def scheduleRecording(self, prog=None):
global guide
@@ -271,8 +339,11 @@
_debug_('scheduleRecording: "%s"' % (prog))
prog.tunerid = chan.tunerid
- scheduledRecordings = self.getScheduledRecordings()
- scheduledRecordings.addProgram(prog, tv_util.getKey(prog))
+ scheduledRecordings = self.getScheduledRecordings()
+ if not self.duplicate(prog):
+ scheduledRecordings.addProgram(prog, tv_util.getKey(prog))
+ else:
+ return (FALSE, 'duplicate recording')
self.saveScheduledRecordings(scheduledRecordings)
# check, maybe we need to start right now
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Freevo-devel mailing list
Freevo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freevo-devel