Re: [Savonet-users] add_protocol issue

2018-09-24 Thread sébastien dagnicourt
Tested on another bionic / 1.3.4 installation:
Warning: unused variable night at line 19, character 9.
Warning: unused variable day at line 18, character 9.
2018/09/24 18:08:22 >>> LOG START
2018/09/24 18:08:22 [main:3] Liquidsoap 1.3.4
2018/09/24 18:08:22 [main:3] Using: bytes=[distributed with OCaml 4.02 or
above] pcre=7.3.4 dtools=0.4.1 duppy=0.7.3 duppy.syntax=0.7.3 cry=0.6.2
mm=0.4.0 ogg=0.5.2 vorbis=0.7.1 mad=0.4.5 dynlink=[distributed with Ocaml]
lame=0.3.3 alsa=0.2.3 samplerate=0.1.4 taglib=0.3.3 camomile=1.0.1
2018/09/24 18:08:22 [dynamic.loader:3] Could not find dynamic module for
fdkaac encoder.
2018/09/24 18:08:22 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz
master.
2018/09/24 18:08:22 [frame:3] Frame size must be a multiple of 1764 ticks =
1764 audio samples = 1 video samples.
2018/09/24 18:08:22 [frame:3] Targetting 'frame.duration': 0.04s = 1764
audio samples = 1764 ticks.
2018/09/24 18:08:22 [frame:3] Frames last 0.04s = 1764 audio samples = 1
video samples = 1764 ticks.
2018/09/24 18:08:22 [video.converter:4] Couldn't find preferred video
converter: gavl.
2018/09/24 18:08:22 [audio.converter:4] Using preferred samplerate
converter: libsamplerate.
2018/09/24 18:08:22 [threads:3] Created thread "generic queue #1".
2018/09/24 18:08:22 [threads:3] Created thread "generic queue #2".
2018/09/24 18:08:22 [threads:3] Created thread "non-blocking queue #1".
2018/09/24 18:08:22 [threads:3] Created thread "non-blocking queue #2".
2018/09/24 18:08:22 [clock:4] Currently 1 clocks allocated.
2018/09/24 18:08:22 [clock.wallclock_alsa:4] Starting 1 sources...
2018/09/24 18:08:22 [source:4] Source output.alsa_6073 gets up.
2018/09/24 18:08:22 [source:4] Source playlist_6069 gets up.
2018/09/24 18:08:22 [test::3] Loading playlist...
2018/09/24 18:08:22 [protocol.process:4] Processing txt,echo ./test.mp3 >>
$(output)
2018/09/24 18:08:22 [protocol.process:4] Executing echo ./test.mp3 >>
"/tmp/liq-processf0f1bc.txt"
2018/09/24 18:08:22 [lang.run_process:4] Starting process
2018/09/24 18:08:22 [lang.run_process:4] Closing process's stdin
Segmentation fault (core dumped)


Le dim. 23 sept. 2018 à 20:27, Romain Beauxis  a
écrit :

> That's strange..
>
> Can you get a request.trace through telnet ?
>
> Also, what OS/OCaml version are you using?
>
> Le dim. 23 sept. 2018 à 13:23, sébastien dagnicourt <
> sebastien.dagnico...@gmail.com> a écrit :
>
>> Same with 1.3.4 :(
>>
>> Issue is somewhere else ...
>>
>> 2018/09/23 20:21:04 >>> LOG START
>> 2018/09/23 20:21:04 [main:3] Liquidsoap 1.3.4
>> 2018/09/23 20:21:04 [main:3] Using: bytes=[distributed with OCaml 4.02 or
>> above] pcre=7.3.4 dtools=0.4.0 duppy=0.7.1 duppy.syntax=0.7.1 cry=0.6.2
>> mm=0.4.0 ogg=0.5.2 vorbis=0.7.1 mad=0.4.5 dynlink=[distributed with Ocaml]
>> lame=0.3.3 alsa=0.2.3 samplerate=0.1.4 taglib=0.3.3 camomile=1.0.1
>> 2018/09/23 20:21:04 [dynamic.loader:3] Could not find dynamic module for
>> fdkaac encoder.
>> 2018/09/23 20:21:04 [decoder:3] Method "MAD" accepted
>> "default/single.mp3".
>> 2018/09/23 20:21:04 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz
>> master.
>> 2018/09/23 20:21:04 [frame:3] Frame size must be a multiple of 1764 ticks
>> = 1764 audio samples = 1 video samples.
>> 2018/09/23 20:21:04 [frame:3] Targetting 'frame.duration': 0.04s = 1764
>> audio samples = 1764 ticks.
>> 2018/09/23 20:21:04 [frame:3] Frames last 0.04s = 1764 audio samples = 1
>> video samples = 1764 ticks.
>> 2018/09/23 20:21:04 [threads:3] Created thread "generic queue #1".
>> 2018/09/23 20:21:04 [threads:3] Created thread "generic queue #2".
>> 2018/09/23 20:21:04 [threads:3] Created thread "non-blocking queue #1".
>> 2018/09/23 20:21:04 [threads:3] Created thread "non-blocking queue #2".
>> 2018/09/23 20:21:04 [nc::3] Loading playlist...
>> 2018/09/23 20:21:24 [protocol.process:3] Failed to execute echo
>> ./test.mp3 >> "/tmp/liq-process65471a.txt": ("timeout","19.3759880066")
>> 2018/09/23 20:21:24 [nc::2] Timeout when resolving playlist URI "nc:"!
>> 2018/09/23 20:21:24 [nc::3] Successfully loaded a playlist of 0 tracks.
>> 2018/09/23 20:21:24 [threads:3] Created thread "alsa_out(default)" (1
>> total).
>> 2018/09/23 20:21:24 [threads:3] Created thread "wallclock_alsa" (2 total).
>> 2018/09/23 20:21:24 [clock.wallclock_alsa:3] Streaming loop starts,
>> synchronized by active sources.
>> 2018/09/23 20:21:24 [alsa_out(default):3] Source failed (no more tracks)
>> stopping output...
>> 2018/09/23 20:21:24 [alsa_out(default):3] Using ALSA 1.1.3.
>> 2018/09/23 20:21:24

Re: [Savonet-users] add_protocol issue

2018-09-24 Thread sébastien dagnicourt
request.trace 1
[2018/09/24 17:45:30] Pushed ["test:";...].
[2018/09/24 17:45:30] Resolving "test:" (timeout 20s)...
[2018/09/24 17:45:30] Pushed ["process:txt,echo ./test.mp3 >>
$(output)";...].
[2018/09/24 17:45:30] Resolving "process:txt,echo ./test.mp3 >> $(output)"
(timeout 20s)...
[2018/09/24 17:45:30] Processing txt,echo ./test.mp3 >> $(output)
[2018/09/24 17:45:30] Executing echo ./test.mp3 >>
"/tmp/liq-processd0b470.txt"


Le dim. 23 sept. 2018 à 20:27, Romain Beauxis  a
écrit :

> That's strange..
>
> Can you get a request.trace through telnet ?
>
> Also, what OS/OCaml version are you using?
>
> Le dim. 23 sept. 2018 à 13:23, sébastien dagnicourt <
> sebastien.dagnico...@gmail.com> a écrit :
>
>> Same with 1.3.4 :(
>>
>> Issue is somewhere else ...
>>
>> 2018/09/23 20:21:04 >>> LOG START
>> 2018/09/23 20:21:04 [main:3] Liquidsoap 1.3.4
>> 2018/09/23 20:21:04 [main:3] Using: bytes=[distributed with OCaml 4.02 or
>> above] pcre=7.3.4 dtools=0.4.0 duppy=0.7.1 duppy.syntax=0.7.1 cry=0.6.2
>> mm=0.4.0 ogg=0.5.2 vorbis=0.7.1 mad=0.4.5 dynlink=[distributed with Ocaml]
>> lame=0.3.3 alsa=0.2.3 samplerate=0.1.4 taglib=0.3.3 camomile=1.0.1
>> 2018/09/23 20:21:04 [dynamic.loader:3] Could not find dynamic module for
>> fdkaac encoder.
>> 2018/09/23 20:21:04 [decoder:3] Method "MAD" accepted
>> "default/single.mp3".
>> 2018/09/23 20:21:04 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz
>> master.
>> 2018/09/23 20:21:04 [frame:3] Frame size must be a multiple of 1764 ticks
>> = 1764 audio samples = 1 video samples.
>> 2018/09/23 20:21:04 [frame:3] Targetting 'frame.duration': 0.04s = 1764
>> audio samples = 1764 ticks.
>> 2018/09/23 20:21:04 [frame:3] Frames last 0.04s = 1764 audio samples = 1
>> video samples = 1764 ticks.
>> 2018/09/23 20:21:04 [threads:3] Created thread "generic queue #1".
>> 2018/09/23 20:21:04 [threads:3] Created thread "generic queue #2".
>> 2018/09/23 20:21:04 [threads:3] Created thread "non-blocking queue #1".
>> 2018/09/23 20:21:04 [threads:3] Created thread "non-blocking queue #2".
>> 2018/09/23 20:21:04 [nc::3] Loading playlist...
>> 2018/09/23 20:21:24 [protocol.process:3] Failed to execute echo
>> ./test.mp3 >> "/tmp/liq-process65471a.txt": ("timeout","19.3759880066")
>> 2018/09/23 20:21:24 [nc::2] Timeout when resolving playlist URI "nc:"!
>> 2018/09/23 20:21:24 [nc::3] Successfully loaded a playlist of 0 tracks.
>> 2018/09/23 20:21:24 [threads:3] Created thread "alsa_out(default)" (1
>> total).
>> 2018/09/23 20:21:24 [threads:3] Created thread "wallclock_alsa" (2 total).
>> 2018/09/23 20:21:24 [clock.wallclock_alsa:3] Streaming loop starts,
>> synchronized by active sources.
>> 2018/09/23 20:21:24 [alsa_out(default):3] Source failed (no more tracks)
>> stopping output...
>> 2018/09/23 20:21:24 [alsa_out(default):3] Using ALSA 1.1.3.
>> 2018/09/23 20:21:24 [alsa_out(default):2] Falling back on interleaved
>> S16LE
>> 2018/09/23 20:21:24 [alsa_out(default):3] Samplefreq=44100Hz,
>> Bufsize=1048576B, Frame=4B, Periods=1024
>> 2018/09/23 20:21:24 [threads:3] Thread "alsa_out(default)" terminated (1
>> remaining).
>>
>>
>> Le dim. 23 sept. 2018 à 20:13, sébastien dagnicourt <
>> sebastien.dagnico...@gmail.com> a écrit :
>>
>>> Hi,
>>>
>>> I tested something like your script, and it failed.
>>>
>>> def nextcloud(~rlog,~maxtime,arg) =
>>>   [process_uri(extname="txt","echo ./test.mp3 >> $(output)")]
>>> end
>>> add_protocol("nc",nextcloud,doc="Fetch files from nextcloud",
>>> syntax="nc://uri")
>>>
>>> Salsa = playlist("nc:")
>>> output.alsa(fallible=true,Salsa)
>>>
>>> 2018/09/23 20:08:06 [nc::3] Loading playlist...
>>> 2018/09/23 20:08:26 [protocol.process:3] Failed to execute echo
>>> ./test.mp3 >> "/tmp/liq-processaa631c.txt": ("timeout","19.7391860485")
>>> 2018/09/23 20:08:26 [nc::2] Failed when resolving playlist URI "nc:"!
>>> 2018/09/23 20:08:26 [nc::3] Successfully loaded a playlist of 0 tracks.
>>>
>>> If I test with a static list like this one '/tmp/liq-processaa631c.txt'
>>> it works so I assume that the "echo" command is well executed and that the
>>> result file is good.
>>>
>>> I chec

Re: [Savonet-users] add_protocol issue

2018-09-23 Thread sébastien dagnicourt
Same with 1.3.4 :(

Issue is somewhere else ...

2018/09/23 20:21:04 >>> LOG START
2018/09/23 20:21:04 [main:3] Liquidsoap 1.3.4
2018/09/23 20:21:04 [main:3] Using: bytes=[distributed with OCaml 4.02 or
above] pcre=7.3.4 dtools=0.4.0 duppy=0.7.1 duppy.syntax=0.7.1 cry=0.6.2
mm=0.4.0 ogg=0.5.2 vorbis=0.7.1 mad=0.4.5 dynlink=[distributed with Ocaml]
lame=0.3.3 alsa=0.2.3 samplerate=0.1.4 taglib=0.3.3 camomile=1.0.1
2018/09/23 20:21:04 [dynamic.loader:3] Could not find dynamic module for
fdkaac encoder.
2018/09/23 20:21:04 [decoder:3] Method "MAD" accepted "default/single.mp3".
2018/09/23 20:21:04 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz
master.
2018/09/23 20:21:04 [frame:3] Frame size must be a multiple of 1764 ticks =
1764 audio samples = 1 video samples.
2018/09/23 20:21:04 [frame:3] Targetting 'frame.duration': 0.04s = 1764
audio samples = 1764 ticks.
2018/09/23 20:21:04 [frame:3] Frames last 0.04s = 1764 audio samples = 1
video samples = 1764 ticks.
2018/09/23 20:21:04 [threads:3] Created thread "generic queue #1".
2018/09/23 20:21:04 [threads:3] Created thread "generic queue #2".
2018/09/23 20:21:04 [threads:3] Created thread "non-blocking queue #1".
2018/09/23 20:21:04 [threads:3] Created thread "non-blocking queue #2".
2018/09/23 20:21:04 [nc::3] Loading playlist...
2018/09/23 20:21:24 [protocol.process:3] Failed to execute echo ./test.mp3
>> "/tmp/liq-process65471a.txt": ("timeout","19.3759880066")
2018/09/23 20:21:24 [nc::2] Timeout when resolving playlist URI "nc:"!
2018/09/23 20:21:24 [nc::3] Successfully loaded a playlist of 0 tracks.
2018/09/23 20:21:24 [threads:3] Created thread "alsa_out(default)" (1
total).
2018/09/23 20:21:24 [threads:3] Created thread "wallclock_alsa" (2 total).
2018/09/23 20:21:24 [clock.wallclock_alsa:3] Streaming loop starts,
synchronized by active sources.
2018/09/23 20:21:24 [alsa_out(default):3] Source failed (no more tracks)
stopping output...
2018/09/23 20:21:24 [alsa_out(default):3] Using ALSA 1.1.3.
2018/09/23 20:21:24 [alsa_out(default):2] Falling back on interleaved S16LE
2018/09/23 20:21:24 [alsa_out(default):3] Samplefreq=44100Hz,
Bufsize=1048576B, Frame=4B, Periods=1024
2018/09/23 20:21:24 [threads:3] Thread "alsa_out(default)" terminated (1
remaining).


Le dim. 23 sept. 2018 à 20:13, sébastien dagnicourt <
sebastien.dagnico...@gmail.com> a écrit :

> Hi,
>
> I tested something like your script, and it failed.
>
> def nextcloud(~rlog,~maxtime,arg) =
>   [process_uri(extname="txt","echo ./test.mp3 >> $(output)")]
> end
> add_protocol("nc",nextcloud,doc="Fetch files from nextcloud",
> syntax="nc://uri")
>
> Salsa = playlist("nc:")
> output.alsa(fallible=true,Salsa)
>
> 2018/09/23 20:08:06 [nc::3] Loading playlist...
> 2018/09/23 20:08:26 [protocol.process:3] Failed to execute echo ./test.mp3
> >> "/tmp/liq-processaa631c.txt": ("timeout","19.7391860485")
> 2018/09/23 20:08:26 [nc::2] Failed when resolving playlist URI "nc:"!
> 2018/09/23 20:08:26 [nc::3] Successfully loaded a playlist of 0 tracks.
>
> If I test with a static list like this one '/tmp/liq-processaa631c.txt' it
> works so I assume that the "echo" command is well executed and that the
> result file is good.
>
> I check if I can upgrade to 1.3.4
>
>
>
> Le dim. 23 sept. 2018 à 18:27, Romain Beauxis 
> a écrit :
>
>> Hi,
>> Le sam. 22 sept. 2018 à 13:10, sébastien dagnicourt <
>> sebastien.dagnico...@gmail.com> a écrit :
>> >
>> > Hi,
>> >
>> > So new tests:
>> > I create a local "radio.txt" file.
>> > I put in in the playlist function, tracks were discovered and played.
>> >
>> > So, I created a simple bash file that do a "cat radio.txt >>
>> tmp_liquidsoap_file"
>> > Same issue, liquidsoap won't take the file.
>> > As you suggested I put a debug echo before the exit 0, the echo is ok.
>> The content of the tmp file is ok.
>> > Can't do more simple than that ...
>>
>> That's a good start! This works for me with 1.3.4:
>>
>> def test(~rlog,~maxtime,arg) =
>> [process_uri(extname="txt","echo /tmp/bla.wav >> $(output)")]
>> end
>> add_protocol("test",test)
>>
>> s = playlist("test:")
>>
>> output.ao(fallible=true,s)
>>
>> Is that similar to your test?
>> Romain
>> ___
>> Savonet-users mailing list
>> Savonet-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] add_protocol issue

2018-09-23 Thread sébastien dagnicourt
Hi,

I tested something like your script, and it failed.

def nextcloud(~rlog,~maxtime,arg) =
  [process_uri(extname="txt","echo ./test.mp3 >> $(output)")]
end
add_protocol("nc",nextcloud,doc="Fetch files from nextcloud",
syntax="nc://uri")

Salsa = playlist("nc:")
output.alsa(fallible=true,Salsa)

2018/09/23 20:08:06 [nc::3] Loading playlist...
2018/09/23 20:08:26 [protocol.process:3] Failed to execute echo ./test.mp3
>> "/tmp/liq-processaa631c.txt": ("timeout","19.7391860485")
2018/09/23 20:08:26 [nc::2] Failed when resolving playlist URI "nc:"!
2018/09/23 20:08:26 [nc::3] Successfully loaded a playlist of 0 tracks.

If I test with a static list like this one '/tmp/liq-processaa631c.txt' it
works so I assume that the "echo" command is well executed and that the
result file is good.

I check if I can upgrade to 1.3.4



Le dim. 23 sept. 2018 à 18:27, Romain Beauxis  a
écrit :

> Hi,
> Le sam. 22 sept. 2018 à 13:10, sébastien dagnicourt <
> sebastien.dagnico...@gmail.com> a écrit :
> >
> > Hi,
> >
> > So new tests:
> > I create a local "radio.txt" file.
> > I put in in the playlist function, tracks were discovered and played.
> >
> > So, I created a simple bash file that do a "cat radio.txt >>
> tmp_liquidsoap_file"
> > Same issue, liquidsoap won't take the file.
> > As you suggested I put a debug echo before the exit 0, the echo is ok.
> The content of the tmp file is ok.
> > Can't do more simple than that ...
>
> That's a good start! This works for me with 1.3.4:
>
> def test(~rlog,~maxtime,arg) =
> [process_uri(extname="txt","echo /tmp/bla.wav >> $(output)")]
> end
> add_protocol("test",test)
>
> s = playlist("test:")
>
> output.ao(fallible=true,s)
>
> Is that similar to your test?
> Romain
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] add_protocol issue

2018-09-22 Thread sébastien dagnicourt
Hi,

So new tests:
I create a local "radio.txt" file.
I put in in the playlist function, tracks were discovered and played.

So, I created a simple bash file that do a "cat radio.txt >>
tmp_liquidsoap_file"
Same issue, liquidsoap won't take the file.
As you suggested I put a debug echo before the exit 0, the echo is ok. The
content of the tmp file is ok.
Can't do more simple than that ...
Here's my setup:

Liquidsoap 1.3.3
2018/09/22 20:05:06 [main:3] Using: bytes=[distributed with OCaml 4.02 or
above] pcre=7.3.4 dtools=0.4.0 duppy=0.7.1 duppy.syntax=0.7.1 cry=0.6.2
mm=0.4.0 ogg=0.5.2 vorbis=0.7.1 mad=0.4.5 dynlink=[distributed with Ocaml]
lame=0.3.3 alsa=0.2.3 samplerate=0.1.4 taglib=0.3.3 camomile=1.0.1
OS: Ubuntu Bionic.


Le lun. 17 sept. 2018 à 16:51, sébastien dagnicourt <
sebastien.dagnico...@gmail.com> a écrit :

> Sorry, wrong copy paste, was testing something else
>
> Le lun. 17 sept. 2018 16:17, Romain Beauxis  a
> écrit :
>
>> Le dim. 16 sept. 2018 à 12:30, sébastien dagnicourt
>>  a écrit :
>> >
>> > OK, don't have more time today to tests some more things.
>> >
>> > For the telnet, server trace don't show more than that :
>> > [2018/09/16 19:20:02] Pushed ["nc://genre1/playlist1.txt";...].
>> > [2018/09/16 19:20:02] Resolving "nc://genre1/playlist1" (timeout 30s)...
>> > [2018/09/16 19:20:02] Pushed ["process:.txt,/work/get_file.py
>> '//genre1/playlist1.txt' $(output)";...].
>> > [2018/09/16 19:20:02] Resolving "process:.m3u,/data/djt/ls/get_file.py
>> '//genre1/playlist1.txt' $(output)" (timeout 30s)...
>> > [2018/09/16 19:20:02] Processing .m3u,/work/get_file.py
>> '//genre1/playlist1.txt' $(output)
>>
>> These last 3 lines are suspicious. Why does the extension suddenly
>> change to m3u and why does the process changes to
>> /data/djt/ls/get_file.py and then back to /work/get_file.py?
>>
>> > [2018/09/16 19:20:02] Executing /work/get_file.py
>> '//genre1/playlist1.txt' "/tmp/liq-process81a1c7..m3u"
>> > [2018/09/16 19:20:31] Failed to execute /work/get_file.py
>> '//genre1/playlist1.txt' "/tmp/liq-process81a1c7..m3u":
>> ("timeout","29.8845801353")
>> > [2018/09/16 19:20:31] Every possibility failed!
>> > [2018/09/16 19:20:31] Request finished.
>> > Will do some more tests tomorrow :)
>> >
>> > Le dim. 16 sept. 2018 à 18:42, Romain Beauxis 
>> a écrit :
>> >>
>> >>
>> >>
>> >> Le dim. 16 sept. 2018 à 11:27, sébastien dagnicourt <
>> sebastien.dagnico...@gmail.com> a écrit :
>> >> >
>> >> > Yes, I saw that and I had already the same idea ;)
>> >> > No more luck ...
>> >> >
>> >> > How liquidsoap knows that the script got the playlist ? I mean, does
>> the temp file is known by liquidsoap ?
>> >> > I saw in other examples that people are doing something like
>> get_process_line("") to have the result of the command.
>> >>
>> >> Liquidsoap generates the tmp file name, creates a temp file and passes
>> it to the process as the $(output) argument and then waits for the process
>> to terminate.
>> >>
>> >> Looking at your script and considering your issue, it must be that the
>> line:
>> >>   oc.get_file(f, fd)
>> >> never returns, since adding exit(0) after it doesn't solve the problem.
>> >>
>> >> To double check on that you may want to add a print statement too and
>> see if it shows up in the logs.
>> >>
>> >> Another thing to check is that perhaps the process returns but the
>> request resolution fails later in the process. You may want to enable the
>> telnet server:
>> >>   set("server.telnet",true)
>> >> and check on the request's trace as explained before. There you should
>> have the full logs of the request resolution.
>> >>
>> >> Romain
>> >>
>> >> ___
>> >> Savonet-users mailing list
>> >> Savonet-users@lists.sourceforge.net
>> >> https://lists.sourceforge.net/lists/listinfo/savonet-users
>> >
>> > ___
>> > Savonet-users mailing list
>> > Savonet-users@lists.sourceforge.net
>> > https://lists.sourceforge.net/lists/listinfo/savonet-users
>>
>>
>> ___
>> Savonet-users mailing list
>> Savonet-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] add_protocol issue

2018-09-17 Thread sébastien dagnicourt
Sorry, wrong copy paste, was testing something else

Le lun. 17 sept. 2018 16:17, Romain Beauxis  a
écrit :

> Le dim. 16 sept. 2018 à 12:30, sébastien dagnicourt
>  a écrit :
> >
> > OK, don't have more time today to tests some more things.
> >
> > For the telnet, server trace don't show more than that :
> > [2018/09/16 19:20:02] Pushed ["nc://genre1/playlist1.txt";...].
> > [2018/09/16 19:20:02] Resolving "nc://genre1/playlist1" (timeout 30s)...
> > [2018/09/16 19:20:02] Pushed ["process:.txt,/work/get_file.py
> '//genre1/playlist1.txt' $(output)";...].
> > [2018/09/16 19:20:02] Resolving "process:.m3u,/data/djt/ls/get_file.py
> '//genre1/playlist1.txt' $(output)" (timeout 30s)...
> > [2018/09/16 19:20:02] Processing .m3u,/work/get_file.py
> '//genre1/playlist1.txt' $(output)
>
> These last 3 lines are suspicious. Why does the extension suddenly
> change to m3u and why does the process changes to
> /data/djt/ls/get_file.py and then back to /work/get_file.py?
>
> > [2018/09/16 19:20:02] Executing /work/get_file.py
> '//genre1/playlist1.txt' "/tmp/liq-process81a1c7..m3u"
> > [2018/09/16 19:20:31] Failed to execute /work/get_file.py
> '//genre1/playlist1.txt' "/tmp/liq-process81a1c7..m3u":
> ("timeout","29.8845801353")
> > [2018/09/16 19:20:31] Every possibility failed!
> > [2018/09/16 19:20:31] Request finished.
> > Will do some more tests tomorrow :)
> >
> > Le dim. 16 sept. 2018 à 18:42, Romain Beauxis 
> a écrit :
> >>
> >>
> >>
> >> Le dim. 16 sept. 2018 à 11:27, sébastien dagnicourt <
> sebastien.dagnico...@gmail.com> a écrit :
> >> >
> >> > Yes, I saw that and I had already the same idea ;)
> >> > No more luck ...
> >> >
> >> > How liquidsoap knows that the script got the playlist ? I mean, does
> the temp file is known by liquidsoap ?
> >> > I saw in other examples that people are doing something like
> get_process_line("") to have the result of the command.
> >>
> >> Liquidsoap generates the tmp file name, creates a temp file and passes
> it to the process as the $(output) argument and then waits for the process
> to terminate.
> >>
> >> Looking at your script and considering your issue, it must be that the
> line:
> >>   oc.get_file(f, fd)
> >> never returns, since adding exit(0) after it doesn't solve the problem.
> >>
> >> To double check on that you may want to add a print statement too and
> see if it shows up in the logs.
> >>
> >> Another thing to check is that perhaps the process returns but the
> request resolution fails later in the process. You may want to enable the
> telnet server:
> >>   set("server.telnet",true)
> >> and check on the request's trace as explained before. There you should
> have the full logs of the request resolution.
> >>
> >> Romain
> >>
> >> ___
> >> Savonet-users mailing list
> >> Savonet-users@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/savonet-users
> >
> > ___
> > Savonet-users mailing list
> > Savonet-users@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/savonet-users
>
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] add_protocol issue

2018-09-16 Thread sébastien dagnicourt
OK, don't have more time today to tests some more things.

For the telnet, server trace don't show more than that :
[2018/09/16 19:20:02] Pushed ["nc://genre1/playlist1.txt";...].
[2018/09/16 19:20:02] Resolving "nc://genre1/playlist1" (timeout 30s)...
[2018/09/16 19:20:02] Pushed ["process:.txt,/work/get_file.py
'//genre1/playlist1.txt' $(output)";...].
[2018/09/16 19:20:02] Resolving "process:.m3u,/data/djt/ls/get_file.py
'//genre1/playlist1.txt' $(output)" (timeout 30s)...
[2018/09/16 19:20:02] Processing .m3u,/work/get_file.py
'//genre1/playlist1.txt' $(output)
[2018/09/16 19:20:02] Executing /work/get_file.py '//genre1/playlist1.txt'
"/tmp/liq-process81a1c7..m3u"
[2018/09/16 19:20:31] Failed to execute /work/get_file.py
'//genre1/playlist1.txt' "/tmp/liq-process81a1c7..m3u":
("timeout","29.8845801353")
[2018/09/16 19:20:31] Every possibility failed!
[2018/09/16 19:20:31] Request finished.
Will do some more tests tomorrow :)

Le dim. 16 sept. 2018 à 18:42, Romain Beauxis  a
écrit :

>
>
> Le dim. 16 sept. 2018 à 11:27, sébastien dagnicourt <
> sebastien.dagnico...@gmail.com> a écrit :
> >
> > Yes, I saw that and I had already the same idea ;)
> > No more luck ...
> >
> > How liquidsoap knows that the script got the playlist ? I mean, does the
> temp file is known by liquidsoap ?
> > I saw in other examples that people are doing something like
> get_process_line("") to have the result of the command.
>
> Liquidsoap generates the tmp file name, creates a temp file and passes it
> to the process as the $(output) argument and then waits for the process to
> terminate.
>
> Looking at your script and considering your issue, it must be that the
> line:
>   oc.get_file(f, fd)
> never returns, since adding exit(0) after it doesn't solve the problem.
>
> To double check on that you may want to add a print statement too and see
> if it shows up in the logs.
>
> Another thing to check is that perhaps the process returns but the request
> resolution fails later in the process. You may want to enable the telnet
> server:
>   set("server.telnet",true)
> and check on the request's trace as explained before. There you should
> have the full logs of the request resolution.
>
> Romain
>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] add_protocol issue

2018-09-16 Thread sébastien dagnicourt
Yes, I saw that and I had already the same idea ;)
No more luck ...

How liquidsoap knows that the script got the playlist ? I mean, does the
temp file is known by liquidsoap ?
I saw in other examples that people are doing something like
get_process_line("") to have the result of the command.

Le dim. 16 sept. 2018 à 18:18, Romain Beauxis  a
écrit :

>
>
> Le dim. 16 sept. 2018 à 11:08, sébastien dagnicourt <
> sebastien.dagnico...@gmail.com> a écrit :
> >
> > OK, just for information, the python script is realy simple:
> >
> > #!/usr/bin/python3
> > import owncloud
> > import sys
> >
> >
> > f = sys.argv[1].replace('ocfl://','')
> > fd = sys.argv[2]
> > oc = owncloud.Client('https://mynextcloud_url')
> > oc.login('login','password')
> > oc.get_file(f, fd)
> >
> > User is the same for launching the liquidsoap command or the python one
> from the shell.
> > The thing I don't understand is that the command works under liquidsoap
> also because I have a good file under /tmp/( the
>  "/tmp/liq-process971096..txt" written in the log)
> > It's as if I fecth a file but liquidsoap doesn't know the name of it
> (the one under /tmp)
> > May me I miss something here  ?
> >
> > With full debug I have this line :
> > Failed to resolve "process:.txt,/data/djt/ls/get_file.bash
> '//genre1/playlist1.txt' $(output)"! For more info, see server command
> 'trace 1'
> >
> > Btw the only env difference between from liquidsoap or from a shell is
> the LANG variable.
> > Changed it to confirm that it's the same in the end ;)
>
> Ok, here's another thing: the way liquidsoap terminates a program when run
> like this is by closing its standard input and waiting for it to terminate.
> The unix API doesn't give many other ways to do so.
>
> You may want to add an explicit exit(0) at the very end of the script to
> make sure it terminates properly.
>
> Romain
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


Re: [Savonet-users] add_protocol issue

2018-09-16 Thread sébastien dagnicourt
OK, just for information, the python script is realy simple:

#!/usr/bin/python3
import owncloud
import sys


f = sys.argv[1].replace('ocfl://','')
fd = sys.argv[2]
oc = owncloud.Client('https://mynextcloud_url')
oc.login('login','password')
oc.get_file(f, fd)

User is the same for launching the liquidsoap command or the python one
from the shell.
The thing I don't understand is that the command works under liquidsoap
also because I have a good file under /tmp/( the
"/tmp/liq-process971096..txt" written in the log)
It's as if I fecth a file but liquidsoap doesn't know the name of it (the
one under /tmp)
May me I miss something here  ?

With full debug I have this line :
Failed to resolve "process:.txt,/data/djt/ls/get_file.bash
'//genre1/playlist1.txt' $(output)"! For more info, see server command
'trace 1'

Btw the only env difference between from liquidsoap or from a shell is the
LANG variable.
Changed it to confirm that it's the same in the end ;)




Le dim. 16 sept. 2018 à 17:40, Romain Beauxis  a
écrit :

> Le dim. 16 sept. 2018 à 10:15, sébastien dagnicourt <
> sebastien.dagnico...@gmail.com> a écrit :
> > Already tested it with 30 and 60 seconds. The command took under 10
> seconds in a shell so don't know where is my mystake.
> > If i check the file i got un /tmp the content is OK !
>
> Ok. Your next step is to check on environment variables. Does your script
> rely on some environment variables or specific user to run correctly?
>
> The essential difference between running the script in a shell and inside
> the liquidsoap process are the user running it and the environment
> variables passed to it.
>
> Inside liquidsoap, user will be whatever it run as and environment
> variable should be inherited from the parent liquidsoap process. You should
> be able to log those to a tmp file while running your script to check if
> there is any significant difference..
>
> > Le dim. 16 sept. 2018 17:02, Romain Beauxis 
> a écrit :
> >>
> >> Hi,
> >>
> >> Le dim. 16 sept. 2018 à 09:55, sébastien dagnicourt
> >>  a écrit :
> >> > I made a little script in python to fetch my files from my nextcloud
> share.
> >> > I add a add_protocol function to fetch them in liquidsoap.
> >> > So far it doesn't work in liquidsoap but the command works in a shell.
> >> >
> >> > Below the code made for testing purpose:
> >> >
> >> > def nextcloud(~rlog,~maxtime,arg) =
> >> >   extname = file.extension(dir_sep="/",arg)
> >> >   [process_uri(extname=extname,"/usr/bin/python3 /work/get_file.py
> '#{arg}' $(output)")]
> >> > end
> >> > add_protocol("nc",nextcloud,doc="Fetch files from nextcloud",
> syntax="nc://uri")
> >> >
> >> > default = single("default/single.mp3")
> >> > genre1 = playlist("nc://genre1/playlist1.txt")
> >> > day = genre1
> >> > night   = genre1
> >> > radio = fallback([ request.queue(id="request"),
> >> > switch([({ 6h-22h }, day),
> >> > ({ 22h-6h }, night)]),
> >> > default])
> >> > output.alsa(radio)
> >> >
> >> > Content of the playlist1.txt file:
> >> > nc://genre1/file1.mp3
> >> > nc://genre1/file2.mp3
> >> >
> >> > The log file:
> >> >
> >> > 2018/09/16 16:41:08 [playlist1(dot)txt:3] Loading playlist...
> >> > 2018/09/16 16:41:28 [protocol.process:3] Failed to execute
> /usr/bin/python3 /work/get_file.py '//genre1/playlist1.txt'
> "/tmp/liq-process3ceb08..txt": ("timeout","19.9620351791")
> >> > 2018/09/16 16:41:28 [playlist1(dot)txt:2] Failed when resolving
> playlist URI "nc://genre1/playlist1.txt"!
> >> > 2018/09/16 16:41:28 [playlist1(dot)txt:3] Successfully loaded a
> playlist of 0 tracks.
> >>
> >> Your script looks really good, sounds like a nice feature.
> >>
> >> It seems that the issue is a timeout: the script takes more than the
> default timeout of 20 sec. You may want to increase by setting a different
> timeout parameter in your playlist:
> >>
> >> genre1 = playlist(timeout=, "nc://genre1/playlist1.txt")
> >>
> >> Hope this helps!
> >>
> >>
> >> Le dim. 16 sept. 2018 à 09:55, sébastien dagnicourt <
> sebastien.dagnico...@gmail.com> a écrit :
> >>>
> >>> Hi,
> >>>
> >>> I made a little script in p

Re: [Savonet-users] add_protocol issue

2018-09-16 Thread sébastien dagnicourt
Hi,

Already tested it with 30 and 60 seconds. The command took under 10 seconds
in a shell so don't know where is my mystake.
If i check the file i got un /tmp the content is OK !




Le dim. 16 sept. 2018 17:02, Romain Beauxis  a
écrit :

> Hi,
>
> Le dim. 16 sept. 2018 à 09:55, sébastien dagnicourt
>  a écrit :
> > I made a little script in python to fetch my files from my nextcloud
> share.
> > I add a add_protocol function to fetch them in liquidsoap.
> > So far it doesn't work in liquidsoap but the command works in a shell.
> >
> > Below the code made for testing purpose:
> >
> > def nextcloud(~rlog,~maxtime,arg) =
> >   extname = file.extension(dir_sep="/",arg)
> >   [process_uri(extname=extname,"/usr/bin/python3 /work/get_file.py
> '#{arg}' $(output)")]
> > end
> > add_protocol("nc",nextcloud,doc="Fetch files from nextcloud",
> syntax="nc://uri")
> >
> > default = single("default/single.mp3")
> > genre1 = playlist("nc://genre1/playlist1.txt")
> > day = genre1
> > night   = genre1
> > radio = fallback([ request.queue(id="request"),
> > switch([({ 6h-22h }, day),
> > ({ 22h-6h }, night)]),
> > default])
> > output.alsa(radio)
> >
> > Content of the playlist1.txt file:
> > nc://genre1/file1.mp3
> > nc://genre1/file2.mp3
> >
> > The log file:
> >
> > 2018/09/16 16:41:08 [playlist1(dot)txt:3] Loading playlist...
> > 2018/09/16 16:41:28 [protocol.process:3] Failed to execute
> /usr/bin/python3 /work/get_file.py '//genre1/playlist1.txt'
> "/tmp/liq-process3ceb08..txt": ("timeout","19.9620351791")
> > 2018/09/16 16:41:28 [playlist1(dot)txt:2] Failed when resolving playlist
> URI "nc://genre1/playlist1.txt"!
> > 2018/09/16 16:41:28 [playlist1(dot)txt:3] Successfully loaded a playlist
> of 0 tracks.
>
> Your script looks really good, sounds like a nice feature.
>
> It seems that the issue is a timeout: the script takes more than the
> default timeout of 20 sec. You may want to increase by setting a different
> timeout parameter in your playlist:
>
> genre1 = playlist(timeout=, "nc://genre1/playlist1.txt")
>
> Hope this helps!
>
>
> Le dim. 16 sept. 2018 à 09:55, sébastien dagnicourt <
> sebastien.dagnico...@gmail.com> a écrit :
>
>> Hi,
>>
>> I made a little script in python to fetch my files from my nextcloud
>> share.
>> I add a add_protocol function to fetch them in liquidsoap.
>> So far it doesn't work in liquidsoap but the command works in a shell.
>>
>> Below the code made for testing purpose:
>>
>> def nextcloud(~rlog,~maxtime,arg) =
>>   extname = file.extension(dir_sep="/",arg)
>>   [process_uri(extname=extname,"/usr/bin/python3 /work/get_file.py
>> '#{arg}' $(output)")]
>> end
>> add_protocol("nc",nextcloud,doc="Fetch files from nextcloud",
>> syntax="nc://uri")
>>
>> default = single("default/single.mp3")
>> genre1 = playlist("nc://genre1/playlist1.txt")
>> day = genre1
>> night   = genre1
>> radio = fallback([ request.queue(id="request"),
>> switch([({ 6h-22h }, day),
>> ({ 22h-6h }, night)]),
>> default])
>> output.alsa(radio)
>>
>> Content of the playlist1.txt file:
>> nc://genre1/file1.mp3
>> nc://genre1/file2.mp3
>>
>> The log file:
>>
>> 2018/09/16 16:41:08 [playlist1(dot)txt:3] Loading playlist...
>> 2018/09/16 16:41:28 [protocol.process:3] Failed to execute
>> /usr/bin/python3 /work/get_file.py '//genre1/playlist1.txt'
>> "/tmp/liq-process3ceb08..txt": ("timeout","19.9620351791")
>> 2018/09/16 16:41:28 [playlist1(dot)txt:2] Failed when resolving playlist
>> URI "nc://genre1/playlist1.txt"!
>> 2018/09/16 16:41:28 [playlist1(dot)txt:3] Successfully loaded a playlist
>> of 0 tracks.
>>
>> ___
>> Savonet-users mailing list
>> Savonet-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/savonet-users
>>
> ___
> Savonet-users mailing list
> Savonet-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users


[Savonet-users] Fwd: add_protocol issue

2018-09-16 Thread sébastien dagnicourt
Hi,

I made a little script in python to fetch my files from my nextcloud share.
I add a add_protocol function to fetch them in liquidsoap.
So far it doesn't work in liquidsoap but the command works in a shell.

Below the code made for testing purpose:

def nextcloud(~rlog,~maxtime,arg) =
  extname = file.extension(dir_sep="/",arg)
  [process_uri(extname=extname,"/usr/bin/python3 /work/get_file.py '#{arg}'
$(output)")]
end
add_protocol("nc",nextcloud,doc="Fetch files from nextcloud",
syntax="nc://uri")

default = single("default/single.mp3")
genre1 = playlist("nc://genre1/playlist1.txt")
day = genre1
night   = genre1
radio = fallback([ request.queue(id="request"),
switch([({ 6h-22h }, day),
({ 22h-6h }, night)]),
default])
output.alsa(radio)

Content of the playlist1.txt file:
nc://genre1/file1.mp3
nc://genre1/file2.mp3

The log file:

2018/09/16 16:41:08 [playlist1(dot)txt:3] Loading playlist...
2018/09/16 16:41:28 [protocol.process:3] Failed to execute /usr/bin/python3
/work/get_file.py '//genre1/playlist1.txt' "/tmp/liq-process3ceb08..txt":
("timeout","19.9620351791")
2018/09/16 16:41:28 [playlist1(dot)txt:2] Failed when resolving playlist
URI "nc://genre1/playlist1.txt"!
2018/09/16 16:41:28 [playlist1(dot)txt:3] Successfully loaded a playlist of
0 tracks.
___
Savonet-users mailing list
Savonet-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/savonet-users