Ελληνικοί σταθμοί στο Radio screenlet.

...το μέρος για να ξεκινήσετε!

Συντονιστής: adem1

Κανόνες Δ. Συζήτησης
Παρακαλώ να επιλέξετε, με προσοχή, την άδεια που θέλετε να έχουν οι οδηγοί που συγγράφετε.
Πληροφορίες για τις άδειες μπορείτε να βρείτε εδώ.
Άμα επιθυμείτε κάποια άλλη άδεια επικοινωνήστε με κάποιο Διαχειριστή είτε Συντονιστή.

Σημαντικό είναι να χρησιμοποιήσετε την υπηρεσία http://imagebin.ubuntu-gr.org για τις εικόνες.

Re: Ελληνικοί σταθμοί στο Radio screenlet.

Δημοσίευσηαπό malos » 26 Ιούλ 2009, 11:26

@sv9cag

Στην γραμμή για τον σταθμό "Κνωσσός" έβαλα άλλη. Δοκίμασέ την και πες μου

Κώδικας: Επιλογή όλων
<item label="Κνωσσός fm 100.6" id="mms://live.onestreaming.com/knossosfm Κνωσσός fm 100.6"/>


Με άλλα λόγια .... αν πρόσεξες τις γαμμές που έβαλες , οδηγούν όλες στο live24 ! Βάλε κατ' ευθείαν το ρεύμα του εκάστοτε σταθμού. Βρήκα μερικούς εγώ ( για Κρήτη ) εδώ : http://www.radiofono.gr/live.php?state_id=19

Όπως βλέπεις στη σελίδα υπάρχουν κάποια κουμπάκια του media player ( και άλλα ) . Εκεί με δεξί κλικ κάνε αντιγραφή τοποθεσίας δεσμού. ( Παρατήρησε ότι είναι διαφορετικοί και δεν είναι όλοι από ένα site ! ).
Αν έχεις το κουράγιο κάντο για όλους τους σταθμούς ( Να εμπλουτίσουμε το menu.xml ).

Y.Γ. Θα γούσταρα να το κάνω με τη γνωστή διαδικασία copy-paste αλλά είμαι πολύ κουρασμένος. Και ξέρεις γιατί ;
Μόλις γύρισα από Κρήτη ! ! ! :D ;)
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1251
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: Ελληνικοί σταθμοί στο Radio screenlet.

Δημοσίευσηαπό Βασίλης » 27 Σεπ 2009, 02:37

προσπαθισα να αλαξω το menu.xml και δεν εχω τα δικαιοματα :?
Γνώσεις ⇛ Linux: καθόλου ┃ Προγραμματισμός: Όχι ┃ Αγγλικά: πολυ λιγα
Λειτουργικό ⇛ 9,04 ubuntu
Προδιαγραφές ⇛ │ 1.5 gb │ati radeon x550 HD Audio │ TFT 19''
Βασίλης
babeTUX
babeTUX
 
Δημοσιεύσεις: 25
Εγγραφή: 26 Σεπ 2009, 20:11
Εκτύπωση

Re: Ελληνικοί σταθμοί στο Radio screenlet.

Δημοσίευσηαπό ntinos_ » 27 Σεπ 2009, 02:41

Βασίλης έγραψε:προσπαθισα να αλαξω το menu.xml και δεν εχω τα δικαιοματα :?

αν προσπαθείς απο terminal βάλε sudo μπροστά.
αν προσπαθείς να το ανοίξεις σαν αρχείο πατα δεξί κλικ > ιδιότητες > δικαιώματα και κάνε τις απαραίτητες αλλαγές .
Desktop :CPU intel 4400 core 2 duo 2.0Ghz M/b ASUS P5VD2-X GPU MSI GeForce GT 630 4GB RAM 2x1GB single channel 667Mhz DDR2 HDD (SATA)WD 160 GB windows ,(IDE) WD 40GB ubuntu 12.04(IDE), SG 200GB data, (SATA)SG 160GB data
Άβαταρ μέλους
ntinos_
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 561
Εγγραφή: 11 Σεπ 2008, 00:53
Τοποθεσία: Τρίκαλα
Εκτύπωση

Re: Ελληνικοί σταθμοί στο Radio screenlet.

Δημοσίευσηαπό Βασίλης » 27 Σεπ 2009, 13:18

ntinos_ έγραψε:
Βασίλης έγραψε:προσπαθισα να αλαξω το menu.xml και δεν εχω τα δικαιοματα :?

αν προσπαθείς απο terminal βάλε sudo μπροστά.
αν προσπαθείς να το ανοίξεις σαν αρχείο πατα δεξί κλικ > ιδιότητες > δικαιώματα και κάνε τις απαραίτητες αλλαγές .





μα δεν μπορω να αλαξω τα δικεοματα δεν μου επιτρεπει κατι τετιο
ο αλος τροπος πιος ειναι αν μπορεις εξιγισε μου λιγο πιο αναλιτικα γιατι δεν εχω ιδεα απο λινουξ μολις τα εβαλα
Γνώσεις ⇛ Linux: καθόλου ┃ Προγραμματισμός: Όχι ┃ Αγγλικά: πολυ λιγα
Λειτουργικό ⇛ 9,04 ubuntu
Προδιαγραφές ⇛ │ 1.5 gb │ati radeon x550 HD Audio │ TFT 19''
Βασίλης
babeTUX
babeTUX
 
Δημοσιεύσεις: 25
Εγγραφή: 26 Σεπ 2009, 20:11
Εκτύπωση

Re: Ελληνικοί σταθμοί στο Radio screenlet.

Δημοσίευσηαπό Βασίλης » 27 Σεπ 2009, 17:58

Μου γραφει πως το αρχειο ειναι ιδιοκτισια του χρηστη root και δεν εχω δικαιομα να κανω καμια αλαγη αλα δεν ειπαρχει και κανενας χρηστης με τετιο ονομα για να κανω login προσπατηισα αλα τιποτα
Γνώσεις ⇛ Linux: καθόλου ┃ Προγραμματισμός: Όχι ┃ Αγγλικά: πολυ λιγα
Λειτουργικό ⇛ 9,04 ubuntu
Προδιαγραφές ⇛ │ 1.5 gb │ati radeon x550 HD Audio │ TFT 19''
Βασίλης
babeTUX
babeTUX
 
Δημοσιεύσεις: 25
Εγγραφή: 26 Σεπ 2009, 20:11
Εκτύπωση

Re: Ελληνικοί σταθμοί στο Radio screenlet.

Δημοσίευσηαπό ntinos_ » 27 Σεπ 2009, 19:04

προφανώς αναφέρεσαι σε αυτή την εντολή:

Κώδικας: Επιλογή όλων
sudo gedit /usr/share/screenlets/Radio/menu.xml


την εντολή την έκανες αντιγραφή επικόλληση ?
το pass το έδωσες σωστά έτσι ? κανονικά έπρεπε να τη δεχτεί χωρίς πολλά πολλά... περίμενε να σου πει και κάποιος άλλος κάτι περισσότερο :)

edit: Ά και κάτι άλλο. το menu.xml πού ακριβός βρίσκετε? είναι στην ίδια διαδρομή ή κάπου αλλού ?
Desktop :CPU intel 4400 core 2 duo 2.0Ghz M/b ASUS P5VD2-X GPU MSI GeForce GT 630 4GB RAM 2x1GB single channel 667Mhz DDR2 HDD (SATA)WD 160 GB windows ,(IDE) WD 40GB ubuntu 12.04(IDE), SG 200GB data, (SATA)SG 160GB data
Άβαταρ μέλους
ntinos_
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 561
Εγγραφή: 11 Σεπ 2008, 00:53
Τοποθεσία: Τρίκαλα
Εκτύπωση

Re: Ελληνικοί σταθμοί στο Radio screenlet.

Δημοσίευσηαπό Βασίλης » 28 Σεπ 2009, 22:29

ntinos_ έγραψε:προφανώς αναφέρεσαι σε αυτή την εντολή:

Κώδικας: Επιλογή όλων
sudo gedit /usr/share/screenlets/Radio/menu.xml


την εντολή την έκανες αντιγραφή επικόλληση ?
το pass το έδωσες σωστά έτσι ? κανονικά έπρεπε να τη δεχτεί χωρίς πολλά πολλά... περίμενε να σου πει και κάποιος άλλος κάτι περισσότερο :)

edit: Ά και κάτι άλλο. το menu.xml πού ακριβός βρίσκετε? είναι στην ίδια διαδρομή ή κάπου αλλού ?





ευχαριστω φιλε μου τελικα ιτανε αφτη η εντολη που εφταιγε. δεν το εκανα ακριβος ετσι εμπεντα στο φακελο μετα ανοιγα το αρχειο μονος μου με προγραμα επεξεργασιας κειμενου και πιγενα να το κανω αποθηκευση. με την εντολη αποθηκευτικε χωρις κανενα προβλιμα :thumbup:
δικο μου το λαθος

α και να σε ρωτισω και κατι αλο οτιδιποτε κανω δηλαδη καπια τροποπιηση σε καπιο αρχειο συστιματος θα πρεπει να το καω με εντολες για να το δεχετε ?
Γνώσεις ⇛ Linux: καθόλου ┃ Προγραμματισμός: Όχι ┃ Αγγλικά: πολυ λιγα
Λειτουργικό ⇛ 9,04 ubuntu
Προδιαγραφές ⇛ │ 1.5 gb │ati radeon x550 HD Audio │ TFT 19''
Βασίλης
babeTUX
babeTUX
 
Δημοσιεύσεις: 25
Εγγραφή: 26 Σεπ 2009, 20:11
Εκτύπωση

Re: Ελληνικοί σταθμοί στο Radio screenlet.

Δημοσίευσηαπό ntinos_ » 28 Σεπ 2009, 22:43

ανάλογα το αρχείο, συνήθως ναι, πρέπει να το κάνεις σαν υπερ-χρήστης και γιαυτό δίνουμε την εντολή sudo (Super User DO) ή πρέπει να μπεις σαν root στο σύστημα (δεν συνιστάτε για αρχάριους (την έχω πάθει έτσι)) ή αν έχεις πολλές εντολές που θέλουν sudo δίνεις στην αρχή sudo su και μετά δεν ξανά χρειάζεται να βάλεις sudo στη κάθε εντολή (αυτό μετράει μέχρι να κλίσεις τη κονσόλα (terminal)) .
Desktop :CPU intel 4400 core 2 duo 2.0Ghz M/b ASUS P5VD2-X GPU MSI GeForce GT 630 4GB RAM 2x1GB single channel 667Mhz DDR2 HDD (SATA)WD 160 GB windows ,(IDE) WD 40GB ubuntu 12.04(IDE), SG 200GB data, (SATA)SG 160GB data
Άβαταρ μέλους
ntinos_
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 561
Εγγραφή: 11 Σεπ 2008, 00:53
Τοποθεσία: Τρίκαλα
Εκτύπωση

Re: Ελληνικοί σταθμοί στο Radio screenlet.

Δημοσίευσηαπό xlv1000 » 10 Οκτ 2009, 01:36

πολυ καλος οδηγος!Μπραβο! :clap: :clap: :clap: :clap: :clap: :clap: :clap:
CPU:Intel(R) Celeron(R) CPU G530 @ 2.40GHz
GPU:Intel , DX 10.1 2048x1536.
RAM:4GB
LAN:Realtek® 8111E
AUDIO:Realtek® ALC 887 8-Channel
OS:UBUNTU 12.04
Επίπεδο Γνώσεων : Linux-χαμηλό , Αγγλικά-μέτρια
Άβαταρ μέλους
xlv1000
babeTUX
babeTUX
 
Δημοσιεύσεις: 147
Εγγραφή: 13 Αύγ 2008, 23:15
Τοποθεσία: Ξάνθη
Εκτύπωση

Re: Ελληνικοί σταθμοί στο Radio screenlet.

Δημοσίευσηαπό malos » 07 Νοέμ 2009, 02:37

Συνεχίζω το θέμα καθώς το εξέλιξα λίγο (λόγω φλασιάς !!! :D )

Κατά πρώτον πρόθεσα ένα κουμπάκι, το record για να το πατάμε και να γράφουμε, το stream που παίζει εκείνη τη στιγμή, ως stream.mp3

Κατά δεύτερον ανακάλυψα πως μπορείς να φτιάξεις δικό σου θέμα εμφάνισης.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Για το κουμπάκι πρόσθεσα κάποιες γραμμές στο αρχείο /usr/share/screenlets/Radio/RadioScreenlet.py

1. Κρατήστε ένα αντίγραφο του παραπάνω αρχείου και μετά αλλάξτε το κάνοντας αντιγραφή επικόληση τον παρακάτω κώδικα :

Κώδικας: Επιλογή όλων
#!/usr/bin/env python



# This application is released under the GNU General Public License

# v3 (or, at your option, any later version). You can find the full

# text of the license under http://www.gnu.org/licenses/GPL.txt.

# By using, editing and/or distributing this software you agree to

# the terms and conditions of this license.

# Thank you for using free software!



#

#RadioScreenlet (c) Whise <helder.fraga@hotmail.com>


import screenlets

from screenlets import DefaultMenuItem
from screenlets.options import BoolOption, StringOption, FontOption, ListOption, IntOption,ColorOption

from screenlets import Plugins
import cairo

import pango

import gobject

import sys
import gtk
import commands
Mplayer = Plugins.importAPI('Mplayer')


STREAM_TITLE_MAX_LENGTH = 32



class RadioScreenlet(screenlets.Screenlet):

"""A Radio Streaming Screenlet."""



# default meta-info for Screenlets

__name__ = 'RadioScreenlet'

__version__ = '0.4'

__author__ = 'Helder Fraga aka Whise (c) 2007'

__desc__ = 'A Radio Streaming Screenlet , you can add more radios on the menu.xml file , see inside on how to, this version requires Mplayer installed with codecs and no longuer gstreamer , plays http, mms, rtsp , rm ,ram and others'

__timeout = 1000

playing = False

pipe = None

but1 = ''

but2 = ''

but3 = ''
radio_station = 'http://80.65.234.120:8000/ Frequence 3'



mplayer_record = None

mplayer = None



__titleScrollSpeedLabels = ["Slow", "Medium", "Fast"]

__titleScrollSpeeds = [1000, 500, 250]

streamTitle = ""

displayedStreamTitle = ""

scrollTimestep = 500

scrollLoopTimerHandle = 0

enableTitleScroll = True

streamTitleScrollIndex = 0

streamTitleScrollForward = True

mypath = sys.argv[0][:sys.argv[0].find('RadioScreenlet.py')].strip()

stationList = ();

radio_name_font = 'FreeSans'
radio_name_color = (1,1,1,0.6)
radio_name_x = 5
radio_name_y = 5
radio_name_fontsize = 25
radio_name_fontwidth = 200
song_name_font = 'FreeSans'
song_name_x = 5
song_name_y = 35
song_name_fontsize = 10
song_name_fontwidth = 200
song_name_color = (1,1,1,0.6)
play_button_x = 5
play_button_y = 50
play_button_width = 32
play_button_height = 24
stop_button_x = 40
stop_button_y = 50
stop_button_width = 32
stop_button_height = 24
record_button_x = 150
record_button_y = 50
record_button_width = 32
record_button_height = 24

home = commands.getoutput("echo $HOME")
file_to_save = home + '/stream.mp3'
custom_radio_list = ['http://cidadefm.clix.pt/asx/outros/cidade20.asx Cidade Fm']
is_recording = False


def __init__(self, **keyword_args):

screenlets.Screenlet.__init__(self, width=200, height=100, uses_theme=True,ask_on_option_override=False, **keyword_args)



self.theme_name = "default"



self.pipe = None

self.add_options_group('Radio', 'Settings')
self.add_option(ListOption('Radio', 'custom_radio_list',
self.custom_radio_list, 'Custom Radios',
'Custom radios: stream _space_ radio name'))

self.add_option(StringOption('Radio', 'radio_station',

self.radio_station, 'radio',

'Radio stream address <space> radio name',hidden= True), realtime=False)
self.add_option(FontOption('Radio','radio_name_font',
self.radio_name_font, 'Radio Name Font',
'radio_name_font'))
self.add_option(ColorOption('Radio','radio_name_color',
self.radio_name_color, 'Radio Name Text color', 'radio_name_color'))
self.add_option(IntOption('Screenlet', 'radio_name_x',
self.radio_name_x, 'Radio Name x position', 'radio_name_x',
min=0, max=self.width,hidden= True))
self.add_option(IntOption('Screenlet', 'radio_name_y',
self.radio_name_y, 'Radio Name y position', 'radio_name_y',
min=0, max=self.height,hidden= True))
self.add_option(IntOption('Screenlet', 'radio_name_fontsize',
self.radio_name_fontsize, 'Radio Name fontsize', 'radio_name_fontsize',
min=5, max=50,hidden= True))
self.add_option(IntOption('Screenlet', 'radio_name_fontwidth',
self.radio_name_fontwidth, 'Radio Name fontwidth', 'radio_name_fontwidth',
min=5, max=self.width,hidden= True))
self.add_option(FontOption('Radio','song_name_font',
self.song_name_font, 'Song Title Font',
'song_name_font'))
self.add_option(ColorOption('Radio','song_name_color',
self.song_name_color, 'Radio Name Text color', 'song_name_color'))
self.add_option(IntOption('Screenlet', 'song_name_x',
self.song_name_x, 'Radio Name x position', 'song_name_x',
min=0, max=self.width,hidden= True))
self.add_option(IntOption('Screenlet', 'song_name_y',
self.song_name_y, 'Radio Name y position', 'song_name_y',
min=0, max=self.height,hidden= True))
self.add_option(IntOption('Screenlet', 'song_name_fontsize',
self.song_name_fontsize, 'Radio Name fontsize', 'song_name_fontsize',
min=5, max=50,hidden= True))
self.add_option(IntOption('Screenlet', 'song_name_fontwidth',
self.song_name_fontwidth, 'Radio Name fontwidth', 'song_name_fontwidth',
min=5, max=self.width,hidden= True))
self.add_option(IntOption('Screenlet', 'play_button_x',
self.play_button_x, 'Play button x position', 'play_button_x',
min=0, max=self.width,hidden= True))
self.add_option(IntOption('Screenlet', 'play_button_y',
self.play_button_y, 'Play button y position', 'play_button_y',
min=0, max=self.height,hidden= True))
self.add_option(IntOption('Screenlet', 'play_button_width',
self.play_button_width, 'Play button width', 'play_button_width',
min=0, max=self.width,hidden= True))
self.add_option(IntOption('Screenlet', 'play_button_height',
self.play_button_height, 'Play button height', 'play_button_height',
min=0, max=self.height,hidden= True))


self.add_option(IntOption('Screenlet', 'stop_button_x',
self.stop_button_x, 'Play button x position', 'stop_button_x',
min=0, max=self.width,hidden= True))
self.add_option(IntOption('Screenlet', 'stop_button_y',
self.stop_button_y, 'Play button y position', 'stop_button_y',
min=0, max=self.height,hidden= True))
self.add_option(IntOption('Screenlet', 'stop_button_width',
self.stop_button_width, 'Play button width', 'stop_button_width',
min=0, max=self.width,hidden= True))
self.add_option(IntOption('Screenlet', 'stop_button_height',
self.stop_button_height, 'Play button height', 'stop_button_height',
min=0, max=self.height,hidden= True))


self.add_option(IntOption('Screenlet', 'record_button_x',
self.record_button_x, 'Play button x position', 'record_button_x',
min=0, max=self.width,hidden= True))
self.add_option(IntOption('Screenlet', 'record_button_y',
self.record_button_y, 'Play button y position', 'record_button_y',
min=0, max=self.height,hidden= True))
self.add_option(IntOption('Screenlet', 'stop_button_width',
self.record_button_width, 'Play button width', 'record_button_width',
min=0, max=self.width,hidden= True))
self.add_option(IntOption('Screenlet', 'stop_button_height',
self.record_button_height, 'Play button height', 'record_button_height',
min=0, max=self.height,hidden= True))



self.add_option(BoolOption('Radio', 'enable_title_scroll', self.enableTitleScroll,

'Scroll title', 'Have song titles that are too long scroll across the display'), realtime=True)


self.add_option(StringOption('Radio', 'title_scroll_speed', "Medium",

'Title Scroll Speed', 'How fast the title will scroll',

choices = self.__titleScrollSpeedLabels), realtime=True)
self.add_option(StringOption('Radio', 'file_to_save',

self.file_to_save, 'Record stream file',

'Radio stream record to file'), realtime=False)





self.radio_station = self.radio_station



def on_init (self):

print "Screenlet has been initialized."

# add default menuitems
self.add_default_menuitems(DefaultMenuItem.XML)
self.add_submenuitem("Custom Radios", "Custom Radios",self.custom_radio_list)

self.add_default_menuitems()



def __setattr__(self, name, value):

# call Screenlet.__setattr__ in baseclass (ESSENTIAL!!!!)

screenlets.Screenlet.__setattr__(self, name, value)

if name == 'radio_station':

screenlets.Screenlet.__setattr__(self, name, value)

self.redraw_canvas()

elif name == 'title_scroll_speed':

self.scrollTimestep = self.__titleScrollSpeeds[self.__titleScrollSpeedLabels.index(value)]

self.stopScrollLoop()

self.startScrollLoop()

elif name == 'enable_title_scroll':

self.enableTitleScroll = value

if self.enableTitleScroll:

self.startScrollLoop()

else:

self.stopScrollLoop()

self.scrollTitleHandler()

self.redraw_canvas()



#

# Makes the stream title scroll by if it's too long

#

def scrollTitleHandler(self):

if len(self.streamTitle) > STREAM_TITLE_MAX_LENGTH and self.enableTitleScroll:

startIndex = self.streamTitleScrollIndex

endIndex = self.streamTitleScrollIndex + STREAM_TITLE_MAX_LENGTH

self.displayedStreamTitle = self.streamTitle[startIndex:endIndex]

self.redraw_canvas()



if self.streamTitleScrollForward and len(self.streamTitle) > self.streamTitleScrollIndex + STREAM_TITLE_MAX_LENGTH:

self.streamTitleScrollIndex = self.streamTitleScrollIndex + 1

elif not self.streamTitleScrollForward and 0 < self.streamTitleScrollIndex:

self.streamTitleScrollIndex = self.streamTitleScrollIndex - 1

else: #switch directions and "pause" when we reach the end in our current direction

self.streamTitleScrollForward = not self.streamTitleScrollForward

if self.streamTitleScrollForward:

self.streamTitleScrollIndex = 0

else:

self.streamTitleScrollIndex = len(self.streamTitle) - STREAM_TITLE_MAX_LENGTH

else:

self.displayedStreamTitle = self.streamTitle



return True

def startScrollLoop(self):

if self.scrollLoopTimerHandle == 0:

self.scrollLoopTimerHandle = gobject.timeout_add(self.scrollTimestep, self.scrollTitleHandler)

def stopScrollLoop(self):

if self.scrollLoopTimerHandle:

gobject.source_remove(self.scrollLoopTimerHandle)

self.scrollLoopTimerHandle = 0


def record(self):
if self.mplayer_record == None:
self.mplayer_record = Mplayer.Mplayer(self)
self.close_record_stream()
ta = self.radio_station



ta = ta[:ta.find(' ') ].strip()



if ta[len(ta)-3:] == 'ram' or ta[len(ta)-3:] == 'Ram' or ta[len(ta)-2:] == 'rm' or ta[len(ta)-3:] == 'RAM' or ta[len(ta)-2:] == 'RM' or ta[len(ta)-4:] == 'rmvb' or ta[len(ta)-3:] == 'm3u' or ta[len(ta)-3:] == 'pls' or ta[len(ta)-3:] == 'asx':

ta = ' -playlist ' + ta

print 'PLEASE WAIT , REAL MEDIA STREAMS TAKE A WHILE TO LOAD'



if ta[:len(' http://www.minist')] == 'http://www.ministr':



ta = ' -playlist ' + ta

print 'PLEASE WAIT , REAL MEDIA STREAMS TAKE A WHILE TO LOAD'

self.mplayer_record.record(ta,self.file_to_save)
self.is_recording = True



def start_stop(self):

if self.mplayer == None:

self.mplayer = Mplayer.Mplayer(self)

self.mplayer.addStreamTitleChangeListener(self.handleStreamTitleChange)



#if self.button.get_label() == "Start":

# filepath = self.entry.get_text()

#if os.path.exists(filepath):

#self.button.set_label("Stop")

try:

self.mplayer.close()

except Exception, ex:

print ' Error found , is mplayer installed?'

else:

self.stopScrollLoop()



ta = self.radio_station



ta = ta[:ta.find(' ') ].strip()



if ta[len(ta)-3:] == 'ram' or ta[len(ta)-3:] == 'Ram' or ta[len(ta)-2:] == 'rm' or ta[len(ta)-3:] == 'RAM' or ta[len(ta)-2:] == 'RM' or ta[len(ta)-4:] == 'rmvb' or ta[len(ta)-3:] == 'm3u' or ta[len(ta)-3:] == 'pls' or ta[len(ta)-3:] == 'asx':

ta = ' -playlist ' + ta

print 'PLEASE WAIT , REAL MEDIA STREAMS TAKE A WHILE TO LOAD'



if ta[:len(' http://www.minist')] == 'http://www.ministr':



ta = ' -playlist ' + ta

print 'PLEASE WAIT , REAL MEDIA STREAMS TAKE A WHILE TO LOAD'

print ta

self.mplayer.play(ta)

self.startScrollLoop()

#self.player.set_state(gst.STATE_PLAYING)



def handleStreamTitleChange(self, source, newStreamTitle):

print "Stream title changed: " + newStreamTitle

self.streamTitle = newStreamTitle

self.displayedStreamTitle = self.streamTitle

self.redraw_canvas()



self.streamTitleScrollIndex = 0

self.streamTitleScrollForward = True

return True


def close_record_stream (self):

try:

self.mplayer_record.close_record()

except:

print 'Error found when stoping recording stream'
self.is_recording = False


def close_play_stream (self):

try:

self.mplayer.close()

except:

print 'Error found when closing playing stream'

if self.is_recording:
if screenlets.show_question(self,'Still recording , do you wish to stop recording?'):
self.close_record_stream()

#retval = self.pipe.close()



def stop(self):

try:

self.mplayer.close()

except Exception, ex:

print 'sdfsdf'

else:

self.stopScrollLoop()







def on_quit(self):

"""Called when a keypress-event occured in Screenlet's window."""

self.close_play_stream()

self.close_record_stream()



def on_menuitem_select (self, id):

"""handle MenuItem-events in right-click menu"""
if id == 'b': print id

if id[:4] == "http":

self.radio_station = id

self.start_stop()

self.redraw_canvas()


if id[:6] == "startp":

print 'start playing'

self.start_stop()

self.redraw_canvas()

if id[:6] == "startr":
print 'start recording'

self.record()
self.redraw_canvas()


if id[:5] == "stopr":
print 'stop recording'

self.close_record_stream()
self.redraw_canvas()


if id[:5] == "stopp":

print 'stop playing'

self.close_play_stream()

self.redraw_canvas()


if id[:3] == "mms":

self.radio_station = id



self.start_stop()

# TODO: use DBus-call for this

#self.switch_hide_show()

self.redraw_canvas()



if id[:4] == "rtsp":

self.radio_station = id



self.start_stop()

# TODO: use DBus-call for this

#self.switch_hide_show()

self.redraw_canvas()
if id[:3] == "add":

dialog = gtk.Dialog("New radio stream", self.window)
dialog.resize(300, 100)
dialog.add_buttons(gtk.STOCK_OK, gtk.RESPONSE_OK,
gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)
entrybox = gtk.Entry()
entrybox.set_text('Stream url')
dialog.vbox.add(entrybox)
entrybox.show()
# run dialog
response = dialog.run()
if response == gtk.RESPONSE_OK:

dialog1 = gtk.Dialog("New radio stream", self.window)
dialog1.resize(300, 100)
dialog1.add_buttons(gtk.STOCK_OK, gtk.RESPONSE_OK,
gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)
entrybox1 = gtk.Entry()
entrybox1.set_text('Radio Name')
dialog1.vbox.add(entrybox1)
entrybox1.show()
# run dialog
response = dialog1.run()
if response == gtk.RESPONSE_OK:
a = entrybox.get_text()
b = entrybox1.get_text()
f = open (self.mypath + 'menu.xml','r')
tmp = f.read()
xml = tmp
tmp = tmp.replace(' <!-- Custom radios here -->',' <!-- Custom radios here -->\n'+' <item label="'+b+'" id="' +a +' ' + b +'"/>')
f.close()
f = open (self.mypath + 'menu.xml','w')
f.write(tmp)
f.close()
dialog1.hide()
dialog.hide()


self.add_default_menuitems(DefaultMenuItem.XML)
self.add_submenuitem("Custom Radios", "Custom Radios",self.custom_radio_list)

self.add_default_menuitems()



def on_mouse_down(self,event):

x = event.x / self.scale

y = event.y / self.scale





if event.button == 1:

if x <= self.play_button_width +self.play_button_x and x >= self.play_button_x and y <= self.play_button_height +self.play_button_y and y >= self.play_button_y:

self.but1 = '_press'

self.start_stop()

self.redraw_canvas()

return True


elif x <= self.stop_button_width +self.stop_button_x and x >= self.stop_button_x and y <= self.stop_button_height +self.stop_button_y and y >= self.stop_button_y:

self.but2 = '_press'

self.close_play_stream()

self.redraw_canvas()

return True

elif x <= self.record_button_width +self.record_button_x and x >= self.record_button_x and y <= self.stop_button_height +self.stop_button_y and y >= self.stop_button_y:
self.but3 = '_press'
self.record()
self.redraw_canvas()
return True

def on_mouse_up(self,button):



self.but1 = ''

self.but2 = ''

self.but3 = ''
self.redraw_canvas()

return True


def on_draw(self, ctx):



ctx.scale(self.scale, self.scale)

ctx.set_operator(cairo.OPERATOR_OVER)

if self.theme:

self.theme.render(ctx,'background')
try:self.theme.render(ctx, 'logo')
except:pass

tb = self.radio_station

tb = tb[tb.find(" ")+1:]

tb = tb[:11]
if self.is_recording:ctx.set_source_rgba(1,0,0,1)

else:ctx.set_source_rgba(*self.radio_name_color)

self.draw_text(ctx,tb, self.radio_name_x, self.radio_name_y, self.radio_name_font.split(' ')[0], self.radio_name_fontsize, self.radio_name_fontwidth,pango.ALIGN_LEFT)

tc = self.displayedStreamTitle

tc = tc[:STREAM_TITLE_MAX_LENGTH]

ctx.set_source_rgba(*self.song_name_color)
self.draw_text(ctx,tc, self.song_name_x, self.song_name_y, self.song_name_font.split(' ')[0], self.song_name_fontsize, self.song_name_fontwidth,pango.ALIGN_LEFT)





self.draw_play_button(ctx)
self.draw_stop_button(ctx)
self.draw_record_button(ctx)
try:self.theme.render(ctx,'glass')
except:pass


def draw_play_button(self,ctx):
ctx.save()
ctx.translate(self.play_button_x,self.play_button_y)

self.theme.render(ctx, 'play'+ self.but1)
ctx.restore()


def draw_stop_button(self,ctx):
ctx.save()
ctx.translate(self.stop_button_x,self.stop_button_y)

self.theme.render(ctx, 'stop'+ self.but2)
ctx.restore()

def draw_record_button(self,ctx):
ctx.save()
ctx.translate(self.record_button_x,self.record_button_y)
self.theme.render(ctx, 'record'+ self.but3)
ctx.restore()

def on_draw_shape(self,ctx):

if self.theme:

self.on_draw(ctx)



if __name__ == "__main__":

import screenlets.session

screenlets.session.create_session(RadioScreenlet)



και σώστε το.


Επειδή το αρχείο είναι τεράστιο και οι αλλαγές ( οι προσθήκες ) που έκανα είναι σε διάφορα κομάτια του ( στην αρχή, μέση και τέλος του αρχικού αρχείου) , δεν μπορώ να τις δείξω εδώ.
Αν θέλετε όμως μπορείται να δείτε τις διαφορές εγκαθιστώντας το meld (εφαρμογή που συγκρίνει δύο αρχεία και καταδεικνύει τις διαφορές τους)


Κώδικας: Επιλογή όλων
sudo apt-get install meld



2. Κατεβάστε αυτά τα δύο εικονιδιάκια ή φτιάξτε δικά σας με το gimp ( Αφού τα δικά μου είναι για τα μπάζα ! :D )

Εικόνα
ονομάστε το record.png


και
Εικόνα
ονομάστε το record_press.png

3. Αντιγράψτε τα εικονιδιάκια στο φάκελο : /usr/share/screenlets/Radio/themes/default (ως root εννοείται)


4. Προσθέστε στο αρχείο theme.conf που είναι στη διεύθυνση /usr/share/screenlets/Radio/themes/default/theme.conf
τις παρακάτω γραμμές :

record_button_x = 150
record_button_y = 50
record_button_width = 32
record_button_height = 24

έτσι ώστε το αρχείο να .... καταντήσει έτσι :
Κώδικας: Επιλογή όλων
[Theme]
name = default
author = Helder Fraga aka Whise
version = 1.0
info = Default theme

[Options]
width=200
height=100
radio_name_font = 'FreeSans'
radio_name_color = (1,1,1,1.9)
radio_name_x = 5
radio_name_y = 5
radio_name_fontsize = 28
radio_name_fontwidth = 800
song_name_font = 'FreeSans'
song_name_x = 5
song_name_y = 35
song_name_fontsize = 10
song_name_fontwidth = 200
song_name_color = (1,1,1,0.6)
play_button_x = 5
play_button_y = 50
play_button_width = 32
play_button_height = 24
stop_button_x = 40
stop_button_y = 50
stop_button_width = 32
stop_button_height = 24
record_button_x = 150
record_button_y = 50
record_button_width = 32
record_button_height = 24


και σώστε το.



Κάντε δεξί κλικ στο γαλάζιο εικονίδιο του Screenlet daemon (που βρίσκεται πάνω δεξιά στην περιοχή ειδοποιήσεων ( t r a y ) ) και ...
Restart all Screenlets

Θα πρέπει τώρα να βλέπετε και ένα τρίτο κουμπί. Πατήστε το και μετά από λίγο πατήστε stop. Θα έχει γραφτεί στον προσωπικό σας φάκελο το αρχείο stream.mp3. Ακούστε το και δείτε αν δουλεύει.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
*******************************************************************************************************************************************************************************
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Όσο για το νέο θέμα εμφάνισης ....
Φτιάξτε δικό σας εύκολα ! Εγώ επειδή είμαι λίγο γκάου έκανα κάτι ώρες !

1. Φτιάξτε φάκελο στο /usr/share/screenlets/Radio/themes και ονομάστε τον όπως θέλετε να λέγεται το θέμα σας.
Αντιγράψτε τα εικονάκια όλα από τον φάκελο /usr/share/screenlets/Radio/themes/default και επεξεργαστείτε τα με το gimp ( με ψώφισε το άτιμο ! Αναρωτιέμαι αν υπάρχει άνθρωπος που το ξέρει απέξω ! :D ).

Ή κατεβάστε από το internet εικονιδιάκια που σας αρέσουν.
Τα κουμπιά (play.png stop.png record.png play_press.png stop_press.png και record_press.png) θα πρέπει να έχουν διαστάσεις 32Χ24 ( άντε δύο πάνω - δύο κάτω !!! )
Το logo.png είναι 200Χ80 και έχει διαφανές φόντο. Αν δεν ξέρετε καθόλου, δείτε λίγο αυτό : file:///usr/share/gimp/2.0/help/en/gimp-using-web-transparency.html (με τον firefox)

Εγώ άλλαξα τις πράσινες αυτές νότες με αυτό http://www.scsc.state.pa.us/scsc/lib/sc ... 5B1%5D.gif

Τέλος το θέμα μου το έκανα έτσι
Εικόνα

Αν το θέλετε έτσι πως είναι Θα πρέπει να αντιγαψετε τον φάκελο στην διεύθυνση που είπα στην αρχή ( /usr/share/screenlets/Radio/themes )

Αλλά πως μπορώ να το ανεβάσω στο forum ; :eh:
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1251
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Οδηγοί - How to - Tutorials