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

Reply via email to