Changeset 44

Show
Ignore:
Timestamp:
08/15/10 16:10:41 (4 years ago)
Author:
clauz
Message:

changed slightly the structure of jukeslots, updated TODO, changed default log level to INFO, updated README and INSTALL, updated radiomate0.sql, added test scripts

Location:
trunk
Files:
2 added
10 modified

Legend:

Unmodified
Added
Removed
  • trunk/INSTALL

    r35 r44  
    3232python setup.py install 
    3333 
    34 - To initalize the MySQL database, the radiomate0.sql script is provided. 
     34- To initalize the MySQL database, the radiomate0.sql script is provided. It 
     35  assumes that a database (for example called radiomate, has been created). 
     36  Then, from the command line, it can be ran with: 
     37 
     38mysql -u root -p radiomate < radiomate0.sql  
     39 
     40- an user foobar with password secret and with admin (i.e. all) privileges will 
     41  be created. 
    3542 
    3643- Copy the radiomateconfig.cgi file to your Web server's CGI directory. 
  • trunk/README

    r35 r44  
    7878  directory and use them as template for the new JukeSlot classes. 
    7979 
     80  Write your own liquidsoap code inside the liquidsoapcode() method. The code 
     81  must contain a variable named "radio". The stream correspondig to this  
     82  variable will be forwarded (at runtime) to the main jukeslot istance. 
     83 
    8084- be sure to add a JUKESLOTTYPEDICT entry at the end of the file. For example, 
    8185  at the end of simplelive.py we have the line: 
  • trunk/TODO

    r35 r44  
    11$Id$ 
    22 
    3 - when adding audio file take info from ID3 tags 
     3- web interface. Wordpress plug-in? 
     4- CGI upload, return response w/ new inserted mediafile with id and author, title taken from id3 tags 
     5- add mediafile.length  
    46- test searching by tag  
    57- add "limit" attributes to JSON requests 
     8- jingles between two transmissions 
     9    - jingleplaylist (config.) 
     10    - 1) change transfunction chosing random jingle from playlist 
     11        - j = fallback(track_sensitive=false, [random([jingle1, jingle2]), blank(duration=2.)]) 
     12          transjingle = fun(a,b) -> sequence([fade.final(a, type="sin"), fade.in(fade.out(j)), fade.initial(b, type="sin")]) 
     13    - or 2) use the rotate() function 
     14- make an archive copy of transmission 
     15    - during the transmission save with output.file the same stream. 
     16        - jukeslot plugins: no more output.icecast blabla but finish with radio=... 
     17        - then append to the liq code output.icecast(radio) output.file(radio) 
     18    - take the new file, put it in the uploads dir and register it 
     19    - new mediafile bit: netcast 
     20        - change db change mate change dao 
     21    - update timeslot w/ id mediafile -> archived 
     22        - change db change mate change dao for archived property 
     23- make a commonif used by jsonif, to make radiomate extendable also to non-json interfaces 
    624 
     25- make a WSGI script instead of the CGI 
    726- port to couchdb  
    8 - make a WSGI script instead of the CGI 
    927 
    1028- grep -r TODO * 
  • trunk/radiomate/config.py

    r34 r44  
    1616# Logging 
    1717LOGFILENAME = "/tmp/radiomate.log" 
    18 LOGGINGLEVEL = logging.DEBUG 
     18LOGGINGLEVEL = logging.INFO 
    1919 
    2020# Database parameters 
  • trunk/radiomate/jukeslots/base.py

    r42 r44  
    8686                if r: 
    8787                        raise JukeSlotException("liquidsoap instance not running (exitcode %d)" % r) 
     88 
     89                if main: 
     90                        # the main jukeslot forwards to the icecast server 
     91                        liq += """ 
     92                        output.icecast.mp3( 
     93                            host='%s',  
     94                            port = %d,  
     95                            password = "%s",  
     96                            mount = "%s",  
     97                            restart=true,  
     98                            description="%s",  
     99                            url="%s",  
     100                            radio) 
     101                        """ % (config.ICECASTSERVER, config.ICECASTPORT, config.ICECASTPASSWORD,  
     102                                        config.ICECASTMAINMOUNT, config.RADIONAME, config.RADIOURL) 
     103                        self.logger.info("Starting main liquidsoap istance") 
     104                else: 
     105                        # the secondary jukeslots forward to the main jukeslot 
     106                        liq += """ 
     107                        def rewritemeta(m) =  
     108                            [("song", "%s - %s")] 
     109                        end 
     110                        radio = map_metadata(rewritemeta, radio) 
     111 
     112                        output.icecast.mp3( 
     113                            host='127.0.0.1',  
     114                            port = %d,  
     115                            password = "%s",  
     116                            mount = "radiomate.mp3",  
     117                            restart=true,  
     118                            description="%s", 
     119                            radio) 
     120                        """ % (self.title, self.description, config.INTERNALJUKEPORT, self.mainpassword, self.title) 
     121                        self.logger.info("Starting secondary liquidsoap istance") 
    88122 
    89123                time.sleep(1) 
  • trunk/radiomate/jukeslots/main.py

    r42 r44  
    7878                    ) 
    7979 
    80                 output.icecast.mp3( 
    81                     host='%s',  
    82                     port = %d,  
    83                     password = "%s",  
    84                     mount = "%s",  
    85                     restart=true,  
    86                     description="%s",  
    87                     url="%s",  
    88                     radio) 
    8980 
    90                 """ % (config.INTERNALJUKEPORT, self.getFallBackPlayListLiquidCode(), self.getPassword(),  
    91                                 config.TAKEOVERMOUNTURL, config.ICECASTSERVER, config.ICECASTPORT,  
    92                                 config.ICECASTPASSWORD, config.ICECASTMAINMOUNT, config.RADIONAME,  
    93                                 config.RADIOURL) 
    94                 self.logger.info("Starting main liquidsoap istance") 
     81                """ % (config.INTERNALJUKEPORT, self.getFallBackPlayListLiquidCode(),  
     82                                self.getPassword(), config.TAKEOVERMOUNTURL) 
    9583                return liq 
    9684 
  • trunk/radiomate/jukeslots/simplelive.py

    r42 r44  
    4949                        transitions=[transfunction, transfunction, transfunction]) 
    5050                 
    51                 def rewritemeta(m) =  
    52                     [("song", "%s")] 
    53                 end 
    54                 radio = map_metadata(rewritemeta, radio) 
    55                  
    56                 output.icecast.mp3( 
    57                     host='127.0.0.1',  
    58                     port = %d,  
    59                     password = "%s",  
    60                     mount = "radiomate.mp3",  
    61                     restart=true,  
    62                     description="%s", 
    63                     radio) 
    6451                """ % (config.LIVESTREAMPORT, self.slotparams['livepassword'], config.LIVESTREAMMOUNT, 
    65                                 self.getFallBackPlayListLiquidCode(), self.title, config.INTERNALJUKEPORT, 
    66                                 self.mainpassword, self.title) 
     52                                self.getFallBackPlayListLiquidCode()) 
    6753                return liq 
    6854 
  • trunk/radiomate/jukeslots/simpleplaylist.py

    r42 r44  
    5050                        ) 
    5151                 
    52                 output.icecast.mp3( 
    53                         host='127.0.0.1',  
    54                         port = %d,  
    55                         password = "%s",  
    56                         mount = "radiomate.mp3",  
    57                         radio) 
    5852 
    59                 """ % (self.getPlayListLiquidCode(self.playlist.id), self.getFallBackPlayListLiquidCode(), 
    60                                 config.INTERNALJUKEPORT, self.mainpassword) 
     53                """ % (self.getPlayListLiquidCode(self.playlist.id), self.getFallBackPlayListLiquidCode()) 
    6154                self.logger.info("Starting playlist jukeslot") 
    6255                return liq 
  • trunk/radiomate0.sql

    r37 r44  
    44-- 
    55-- Host: localhost 
    6 -- Generation Time: Aug 13, 2010 at 06:46 PM 
     6-- Generation Time: Aug 15, 2010 at 04:47 PM 
    77-- Server version: 5.1.47 
    88-- PHP Version: 5.3.2 
     
    3333  KEY `mediafile` (`mediafile`) 
    3434) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
     35 
     36-- 
     37-- Dumping data for table `compilation` 
     38-- 
    3539 
    3640-- -------------------------------------------------------- 
     
    5963) ENGINE=InnoDB  DEFAULT CHARSET=utf8; 
    6064 
     65-- 
     66-- Dumping data for table `mediafiles` 
     67-- 
     68 
     69 
    6170-- -------------------------------------------------------- 
    6271 
     
    7180  KEY `user` (`user`) 
    7281) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
     82 
     83-- 
     84-- Dumping data for table `playlistowners` 
     85-- 
     86 
    7387 
    7488-- -------------------------------------------------------- 
     
    92106) ENGINE=InnoDB  DEFAULT CHARSET=utf8; 
    93107 
     108-- 
     109-- Dumping data for table `playlists` 
     110-- 
     111 
     112 
    94113-- -------------------------------------------------------- 
    95114 
     
    104123  KEY `user` (`user`) 
    105124) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
     125 
     126-- 
     127-- Dumping data for table `playlistviewers` 
     128-- 
     129 
    106130 
    107131-- -------------------------------------------------------- 
     
    125149  PRIMARY KEY (`rolename`) 
    126150) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
     151 
     152-- 
     153-- Dumping data for table `roles` 
     154-- 
     155 
     156INSERT INTO `roles` (`rolename`, `canManageRoles`, `canManageUsers`, `canManageAllPlaylists`, `canRegisterFiles`, `canManageRegisteredFiles`, `canManageTimetable`, `fixedSlotTimes`, `changeTimeBeforeTransmission`, `canCreateTestSlot`, `fixedSlotTimesList`) VALUES 
     157('admin', 1, 1, 1, 1, 1, 1, 1, -1, 1, '60,120'); 
    127158 
    128159-- -------------------------------------------------------- 
     
    151182) ENGINE=InnoDB  DEFAULT CHARSET=utf8; 
    152183 
     184-- 
     185-- Dumping data for table `timeslots` 
     186-- 
     187 
     188 
    153189-- -------------------------------------------------------- 
    154190 
     
    167203 
    168204-- 
     205-- Dumping data for table `users` 
     206-- 
     207 
     208INSERT INTO `users` (`name`, `password`, `role`, `displayname`) VALUES 
     209('foobar', 'e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4', 'admin', 'Foo Bar'); 
     210 
     211-- 
    169212-- Constraints for dumped tables 
    170213-- 
  • trunk/radiomateconfig.sample.py

    r35 r44  
    1212# Logging 
    1313LOGFILENAME = "/tmp/radiomate.log" 
    14 LOGGINGLEVEL = logging.DEBUG 
     14LOGGINGLEVEL = logging.INFO 
    1515 
    1616# MySQL database parameters