~mystilleef/korin/korin

« back to all changes in this revision

Viewing changes to Korin/Korin/KorinMetadataService/DiffChecker.py

  • Committer: Lateef Alabi-Oki
  • Date: 2012-03-13 12:00:40 UTC
  • Revision ID: mystilleef@gmail.com-20120313120040-57m9q9j5maus2r9o
Korin metadata service now generates song_info and playlist_info metadata dictionaries. This will be used by other services, especially the main GUI services, to present information to users.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
class Checker(object):
 
2
 
 
3
        def __init__(self, manager):
 
4
                self.__init_attributes(manager)
 
5
                manager.connect("library-metadata", self.__library_cb)
 
6
                manager.connect("playlist-metadata", self.__playlist_cb)
 
7
 
 
8
        def __init_attributes(self, manager):
 
9
                self.__manager = manager
 
10
                self.__old_library_metadata = {}
 
11
                self.__library_first_time = True
 
12
                self.__old_playlist_metadata = {}
 
13
                self.__playlist_first_time = True
 
14
                return False
 
15
 
 
16
        def __library_cb(self, manager, metadata):
 
17
                try:
 
18
                        from gi.repository.GObject import idle_add, PRIORITY_LOW
 
19
                        if self.__library_first_time: raise ValueError
 
20
                        if self.__old_library_metadata == metadata: return False
 
21
                        self.__old_library_metadata = metadata
 
22
                        idle_add(self.__manager.emit, "new-library-metadata", metadata, priority=PRIORITY_LOW)
 
23
                        print "New library metadata found"
 
24
                except ValueError:
 
25
                        self.__library_first_time = False
 
26
                        self.__old_library_metadata = metadata
 
27
                        idle_add(self.__manager.emit, "new-library-metadata", metadata, priority=PRIORITY_LOW)
 
28
                        print "New library metadata found"
 
29
                return False
 
30
 
 
31
        def __playlist_cb(self, manager, metadata):
 
32
                try:
 
33
                        from gi.repository.GObject import idle_add, PRIORITY_LOW
 
34
                        if self.__playlist_first_time: raise ValueError
 
35
                        if self.__old_playlist_metadata == metadata: return False
 
36
                        self.__old_playlist_metadata = metadata
 
37
                        idle_add(self.__manager.emit, "new-playlist-metadata", metadata, priority=PRIORITY_LOW)
 
38
                        print "New playlist metadata found"
 
39
                except ValueError:
 
40
                        self.__playlist_first_time = False
 
41
                        self.__old_playlist_metadata = metadata
 
42
                        idle_add(self.__manager.emit, "new-playlist-metadata", metadata, priority=PRIORITY_LOW)
 
43
                        print "New playlist metadata found"
 
44
                return False