<VirtualHost *:80>
ServerAdmin webmaster@localhost
- ServerName telecasterXXX.parisson.com
DocumentRoot /var/www/
- SuexecUserGroup prebarreau prebarreau
+ SuexecUserGroup telecaster telecaster
ErrorLog /var/log/apache2/error.log
<deefuzzer>
- <log>/var/log/deefuzzer/preb.log</log>
- <m3u>/var/www/m3u/preb.m3u</m3u>
+ <log>/var/log/deefuzzer/telecaster.log</log>
+ <m3u>/var/www/m3u/telecaster.m3u</m3u>
<station>
<infos>
<short_name>telecaster_local</short_name>
- <name>TeleCaster LocalHost</name>
+ <name>TeleCaster Localhost</name>
<description>TeleCaster local audio streaming</description>
- <url>http://crfpa.pre-barreau.com</url>
+ <url>http://parisson.com</url>
<genre>Vocal</genre>
</infos>
<server>
<station>
<infos>
<short_name>telecaster</short_name>
- <name>TeleCaster #4</name>
- <description>TeleCaster testing</description>
- <url>http://crfpa.pre-barreau.com</url>
+ <name>TeleCaster Remote</name>
+ <description>TeleCaster Remote</description>
+ <url>http://parisson.com</url>
<genre>School</genre>
</infos>
<server>
</record>
</station>
-
</deefuzzer>
ServerIRC=
ServerAIM=
ServerICQ=
-ServerStreamURL=http://pre-barreau.com
+ServerStreamURL=http://parisson.com
ServerName=TeleCaster LIVE
ServerDescription=Local LIVE media streaming broadcast
ServerGenre=Vocal
#
SaveDirectoryFlag=1
-SaveDirectory=/home/pre-barreau/trash
+SaveDirectory=/home/telecaster/trash
SaveAsWAV=0
#
# Ogg Vorbis specific settings. Note: Valid settings for BitrateQuality flag are (Quality, Bitrate Management)
# Log Level 1 = LOG_ERROR, 2 = LOG_ERROR+LOG_WARNING, 3 = LOG_ERROR+LOG_WARNING+LOG_DEBUG
LogLevel=1
# Log File
-LogFile=/tmp/streamTranscoder_1
+LogFile=/tmp/telecaster_streamer_log
<telecaster>
<infos>
- <short_name>Pre-Barreau</short_name>
- <name>Pre-Barreau</name>
- <description>La preparation au Barreau de Paris</description>
- <url>telecaster-04.parisson.com</url>
- <genre>Vocal</genre>
+ <short_name>Parisson</short_name>
+ <name>Parisson</name>
+ <description>Parisson TeleCaster Services</description>
+ <url>telecaster.parisson.com</url>
+ <genre>Various</genre>
</infos>
- <log>/tmp/telecaster.log</log>
+ <log>/var/log/telecaster.log</log>
<deefuzzer>
<conf>/etc/telecaster/deefuzzer.xml</conf>
</deefuzzer>
<media>
<record>true</record>
- <play_dir>/home/prebarreau/media</play_dir>
- <rec_dir>/home/prebarreau/archives</rec_dir>
+ <play_dir>/home/telecaster/media</play_dir>
+ <rec_dir>/home/telecaster/archives</rec_dir>
<format>mp3</format>
<bitrate>96</bitrate>
<channels>1</channels>
<short_name>Pre-Barreau</short_name>
<name>Pre-Barreau</name>
<description>La preparation au Barreau de Paris</description>
- <url>http:///telecaster-04.parisson.com</url>
+ <url>telecaster-04.parisson.com</url>
<genre>Vocal</genre>
</infos>
- <server>
- <host>localhost</host>
- <port>8000</port>
- <sourcepassword>source2parisson</sourcepassword>
- <public>0</public>
- <deefuzzer_default_conf>/etc/telecaster/deefuzzer.xml</odd_conf_file>
- <rss>
- <dir>/var/www/rss/</dir>
- </rss>
- </server>
+ <log>/tmp/telecaster.log</log>
+ <deefuzzer>
+ <conf>/etc/telecaster/deefuzzer.xml</conf>
+ </deefuzzer>
<media>
<record>true</record>
- <play_dir>/home/pre-barreau/media</dir>
- <rec_dir>/home/pre-barreau/backup</rec_dir>
+ <play_dir>/home/prebarreau/media</play_dir>
+ <rec_dir>/home/prebarreau/archives</rec_dir>
<format>mp3</format>
<bitrate>96</bitrate>
<channels>1</channels>
<name>jack_rack:out_1</name>
</input>
</jack>
+
+ <department>
+ <name>CRFPA</name>
+ <conferences>
+ <conference>
+ <name>Droit_administratif_Corrections</name>
+ </conference>
+ <conference>
+ <name>Droit_administratif_Cours</name>
+ </conference>
+ <conference>
+ <name>Droit_des_obligations_Corrections</name>
+ </conference>
+ <conference>
+ <name>Droit_des_obligations_Cours</name>
+ </conference>
+ <conference>
+ <name>Droit_commercial_des_affaires_Corrections</name>
+ </conference>
+ <conference>
+ <name>Droit_commercial_des_affaires_Cours</name>
+ </conference>
+ <conference>
+ <name>Droit_communautaire_et_europeen_Corrections</name>
+ </conference>
+ <conference>
+ <name>Droit_communautaire_et_europeen_Cours</name>
+ </conference>
+ <conference>
+ <name>Droit_de_la_famille_et_des_personnes_Corrections</name>
+ </conference>
+ <conference>
+ <name>Droit_de_la_famille_et_des_personnes_Cours</name>
+ </conference>
+ <conference>
+ <name>Droit_du_travail_Corrections</name>
+ </conference>
+ <conference>
+ <name>Droit_du_travail_Cours</name>
+ </conference>
+ <conference>
+ <name>Droit_fiscal_Corrections</name>
+ </conference>
+ <conference>
+ <name>Droit_fiscal_Cours</name>
+ </conference>
+ <conference>
+ <name>Droit_international_prive_Corrections</name>
+ </conference>
+ <conference>
+ <name>Droit_international_prive_Cours</name>
+ </conference>
+ <conference>
+ <name>Droit_patrimonial_Corrections</name>
+ </conference>
+ <conference>
+ <name>Droit_patrimonial_Cours</name>
+ </conference>
+ <conference>
+ <name>Droit_public_des_activites_economiques_Corrections</name>
+ </conference>
+ <conference>
+ <name>Droit_public_des_activites_economiques_Cours</name>
+ </conference>
+ <conference>
+ <name>Droit_penal_Corrections</name>
+ </conference>
+ <conference>
+ <name>Droit_penal_Cours</name>
+ </conference>
+ <conference>
+ <name>Droit_Libertes_publiques_Cours</name>
+ </conference>
+ <conference>
+ <name>Note_de_synthese_Corrections</name>
+ </conference>
+ <conference>
+ <name>Procedure_administrative_et_contentieuse_Corrections</name>
+ </conference>
+ <conference>
+ <name>Procedure_administrative_et_contentieuse_Cours</name>
+ </conference>
+ <conference>
+ <name>Procedure_civile_Corrections</name>
+ </conference>
+ <conference>
+ <name>Procedure_civile_Cours</name>
+ </conference>
+ <conference>
+ <name>Procedures_collectives_et_suretes_Corrections</name>
+ </conference>
+ <conference>
+ <name>Procedures_collectives_et_suretes_Cours</name>
+ </conference>
+ <conference>
+ <name>Procedure_penale_Corrections</name>
+ </conference>
+ <conference>
+ <name>Procedure_penale_Cours</name>
+ </conference>
+ <conference>
+ <name>Oral-Procedures_communautaires</name>
+ </conference>
+ <conference>
+ <name>Oral-Voies_d_ex</name>
+ </conference>
+ <conference>
+ <name>Oral-Comptabilite_privee</name>
+ </conference>
+ <conference>
+ <name>Oral-Finances_publiques</name>
+ </conference>
+ <conference>
+ <name>TEST</name>
+ </conference>
+ </conferences>
+
+ </department>
+
+ <department>
+ <name>AE</name>
+ <conferences>
+ <conference>
+ <name>Administratif_Cours</name>
+ </conference>
+ <conference>
+ <name>Adm_Correction</name>
+ </conference>
+ <conference>
+ <name>Civil_Correction</name>
+ </conference>
+ <conference>
+ <name>Commercial_Correctio</name>
+ </conference>
+ <conference>
+ <name>Commercial_Cours</name>
+ </conference>
+ <conference>
+ <name>Deontologie_Cours</name>
+ </conference>
+ <conference>
+ <name>Droit civil - Cours</name>
+ </conference>
+ <conference>
+ <name>Methodo_Oraux</name>
+ </conference>
+ <conference>
+ <name>Penal_Correction</name>
+ </conference>
+ <conference>
+ <name>Penal_Cours</name>
+ </conference>
+ <conference>
+ <name>Procedures_Cours</name>
+ </conference>
+ <conference>
+ <name>Reunion_info</name>
+ </conference>
+ <conference>
+ <name>Social_Corrections</name>
+ </conference>
+ <conference>
+ <name>Social_Cours</name>
+ </conference>
+ <conference>
+ <name>REUNION</name>
+ </conference>
+ <conference>
+ <name>TEST</name>
+ </conference>
+ </conferences>
+ </department>
+
+ <department>
+ <name>ENM</name>
+ <conferences>
+ <conference>
+ <name>TEST</name>
+ </conference>
+ <conference>
+ <name>REUNION</name>
+ </conference>
+ </conferences>
+ </department>
+
+
+ <department>
+ <name>FJP</name>
+ <conferences>
+ <conference>
+ <name>Actualisation</name>
+ </conference>
+ <conference>
+ <name>TEST</name>
+ </conference>
+ <conference>
+ <name>REUNION</name>
+ </conference>
+ </conferences>
+ </department>
+
+ <professor>
+ <name>MARINHO A.</name>
+ </professor>
+ <professor>
+ <name>GIUSTINIANI G.</name>
+ </professor>
+ <professor>
+ <name>BOFFA R.</name>
+ </professor>
+ <professor>
+ <name>MEUNIER J.</name>
+ </professor>
+ <professor>
+ <name>THERY C.</name>
+ </professor>
+ <professor>
+ <name>JLB</name>
+ </professor>
+ <professor>
+ <name>AZZI T.</name>
+ </professor>
+ <professor>
+ <name>ETIENNEY A.</name>
+ </professor>
+ <professor>
+ <name>MARKUS J.</name>
+ </professor>
+ <professor>
+ <name>ANDREU L.</name>
+ </professor>
+ <professor>
+ <name>ROUMIER W.</name>
+ </professor>
+ <professor>
+ <name>HAIK R.</name>
+ </professor>
+ <professor>
+ <name>POISSON S.</name>
+ </professor>
+ <professor>
+ <name>CARTIER-BRESSON A.</name>
+ </professor>
+ <professor>
+ <name>MBONGO P.</name>
+ </professor>
+ <professor>
+ <name>MATHONNET P.</name>
+ </professor>
+ <professor>
+ <name>FOULQUIER N.</name>
+ </professor>
+ <professor>
+ <name>RILOV. F</name>
+ </professor>
+ <professor>
+ <name>JEANSEN E.</name>
+ </professor>
+ <professor>
+ <name>LA J.</name>
+ </professor>
+ <professor>
+ <name>MECARELLI G.</name>
+ </professor>
+ <professor>
+ <name>COLLET M.</name>
+ </professor>
+ <professor>
+ <name>GILBERT S.</name>
+ </professor>
+ <professor>
+ <name>VIAL C.</name>
+ </professor>
+ <professor>
+ <name>PAGNERRE E.</name>
+ </professor>
+ <professor>
+ <name>PANOU C.</name>
+ </professor>
+ <professor>
+ <name>GILBERT S.</name>
+ </professor>
+ <professor>
+ <name>ROBBE S.</name>
+ </professor>
+
+
+ <comment><text>1ere_sem</text></comment>
+ <comment><text>2e_sem</text></comment>
+ <comment><text>3e_sem</text></comment>
+ <comment><text>4e_sem</text></comment>
+ <comment><text>5e_sem</text></comment>
+ <comment><text>6e_sem</text></comment>
+ <comment><text>7e_sem</text></comment>
+ <comment><text>8e_sem</text></comment>
+ <comment><text>9e_sem</text></comment>
+ <comment><text>10e_sem</text></comment>
+ <comment><text>11e_sem</text></comment>
+ <comment><text>12e_sem</text></comment>
+ <comment><text>13e_sem</text></comment>
+ <comment><text>14e_sem</text></comment>
+ <comment><text>15e_sem</text></comment>
+ <comment><text>16e_sem</text></comment>
+
+
</telecaster>
import os, sys
import platform
-install_dir = '/var/www/telecaster'
-if not os.path.exists(install_dir):
- os.mkdir(install_dir)
+def remove_svn(path):
+ for root, dirs, files in os.walk(path):
+ for dir in dirs:
+ if '.svn' in dir:
+ shutil.rmtree(root + os.sep + dir)
+
+app_dir = os.getcwd()
+
+user = 'telecaster'
+home = '/home/' + user
+if not os.path.exists(home):
+ print 'Please give some informations for the new "telecaster" user :'
+ os.system('adduser ' + user)
+
+# compiling edcast-jack
+os.chdir(app_dir + '/tools/edcast-jack')
+os.system('./configure; make; sudo make install')
-user = raw_input('Give a user to use the TeleCaster system : ')
-print 'Installing...'
+# installing deefuzzer
+os.chdir(app_dir + '/tools/deefuzzer')
+os.system('sudo python setup.py install')
-os.system('cp -ra ./* ' + install_dir + os.sep)
-os.system('rm -rf ' + install_dir + os.sep + 'tools/edcast-jack')
-os.system('rm -rf ' + install_dir + os.sep + 'tools/deefuzzer')
+os.chdir(app_dir)
+install_dir = '/var/www/telecaster'
+if os.path.exists(install_dir):
+ shutil.rmtree(install_dir)
+shutil.copytree(current_dir, install_dir,ignore=shutil.ignore_patterns('edcast-jack*', 'deefuzzer*', '*.svn*'))
+os.system('chown -R ' + user + ':' + user + ' ' + install_dir)
-etc_dir = '/etc'
-conf_dir = etc_dir + os.sep + 'telecaster'
+conf_dir = '/etc/telecaster'
if not os.path.exists(conf_dir):
- os.mkdir(conf_dir)
- os.system('cp -ra ./conf/etc/* ' + etc_dir + os.sep)
- os.system('chown -R root:root ' + etc_dir)
+ shutil.copytree('conf'+conf_dir, conf_dir)
+
+daemons = ['jackd', 'vncserver']
+init_dir = '/etc/init.d/'
+conf_dir = '/etc/default/'
+for daemon in daemons:
+ shutil.copy('conf'+init_dir+daemon, init_dir)
+ shutil.copy('conf'+conf_dir+daemon, conf_dir)
-init_dir = '/etc/rc2.d'
-init_link = init_dir + os.sep + 'S97jackd'
+init_link = '/etc/rc2.d/S97jackd'
if not os.path.exists(init_link):
- os.system('ln -s /etc/init.d/jackd ' + init_link)
+ os.symlink('/etc/init.d/jackd ', init_link)
-init_link = init_dir + os.sep + 'S99vncserver'
+init_link = '/etc/rc2.d/S99vncserver'
if not os.path.exists(init_link):
- os.system('ln -s /etc/init.d/vncserver ' + init_link)
-
-os.system('chown -R ' + user + ':' + user + ' ' + install_dir)
-home = os.sep + 'home' + os.sep + user + os.sep
-home_dirs = ['fluxbox', 'vnc']
+ os.symlink('/etc/init.d/vncserver ', init_link)
+home_dirs = ['fluxbox', 'vnc']
for dir in home_dirs:
- home_dir = home + '.' + dir
+ home_dir = home + '/.' + dir
if not os.path.exists(home_dir):
- os.mkdir(home_dir)
- os.system('cp ' + conf_dir + os.sep + 'home' + os.sep + dir + '/* ' + home_dir)
+ shutil.copytree('conf'+home_dir, home_dir)
os.system('chown -R ' + user + ':' + user + ' ' + home_dir)
-#var_dir = '/var/www/telecaster'
-#if not os.path.exists(var_dir):
-# os.system('ln -s ' + install_dir + ' ' + var_dir)
+apache_conf = '/etc/apache2/sites-available/telecaster.conf'
+if not os.path.exists(apache_conf):
+ shutil.copy('conf'+apache_conf, apache_conf)
+os.system('/etc/init.d/apache2 reload')
print """
Installation successfull !
- Now configure your apache VirtualHost to get TeleCaster in your browser.
- Please see conf/etc/apache2/default and README for more infos.
+
+ Now, please :
+ - configure your telecaster editing /etc/telecaster/telecaster.xml
+ - configure your apache VirtualHost editing /etc/apache2/sites-available/telecaster.conf
+
+ And use the TeleCaster system browsing http://localhost/telecaster/telecaster.py
+
+ See README for more infos.
"""