Kirjoittaja Aihe: [RATKAISTU] Miten käytän webvi command line clientiä skriptin kautta?  (Luettu 1184 kertaa)

noppelipoppeli

  • Käyttäjä
  • Viestejä: 3
    • Profiili
Moikka!

Viittisköhän viisaammat opastaa avutonta?

On tullut käytettyä webviä.
http://users.tkk.fi/~aajanki/vdr/webvideo/

Homma toimii ja kaikki on melkein ok. Melkein siksi, että ennen niin mukava valitsin --url ei enää ole käytössä.

Jonkun skriptin ajattelin sitten väsätä korvaamaan tuon toiminnon, mutta se olikin vaikeampaa kuin kuvittelin.

Kysymys siis kuuluu, miten käytän webvin valikkoa skriptistä käsin?

Yritin jotain tällaista ja melkeinhän se onnistui:
Koodia: [Valitse]
echo 7 | webvi
webvi käynnistyy ja siirtyy onnistuneesti Youtuben valikkoon. Onnistuneesti webvi myös siihen lopettaa.

Miten pääsisin pitemmälle?


« Viimeksi muokattu: 15.01.13 - klo:17.23 kirjoittanut noppelipoppeli »

noppelipoppeli

  • Käyttäjä
  • Viestejä: 3
    • Profiili
No heipä hei teille.

Asia valkeni unenhorteessa yöllä. Osaan(!) siis käyttää webvin valikkoa skriptin avulla. Mutta homma vaan ei toimi.

Sain aikaan tällaisen:

Koodia: [Valitse]
#!/bin/bash

{
  echo "select 7"
    sleep "1"
  echo "select 1"
    sleep "1"
  echo "select 1"
    sleep "1"
  echo "http://www.youtube.com/watch?v=NhRqTVhS514"
    sleep "1"
  echo "select 4"
    sleep "2"
  echo "download 1"
} | webvi

Jos käytän valikkoa käsin, nuo em. valinnat lataavat videon onnistuneesti. Skriptin välityksellä homma lakkaa toimimasta rivillä 8.

Virhettä tässä:

Koodia: [Valitse]
> Youtube Search
==============
1. Search terms:
2. Sort by: <Relevance>, Date Added, View Count, Rating
3. Uploaded: <Anytime>, Today, This week, This month
4. [Search]
> Search terms> Exception occurred while handling command "select 1"
Traceback (most recent call last):
  File "/usr/local/lib/python2.6/dist-packages/webvicli/client.py", line 619, in onecmd
    return cmd.Cmd.onecmd(self, c)
  File "/usr/lib/python2.6/cmd.py", line 219, in onecmd
    return func(arg)
  File "/usr/local/lib/python2.6/dist-packages/webvicli/client.py", line 654, in do_select
    ref = menuitem.activate()
  File "/usr/local/lib/python2.6/dist-packages/webvicli/menu.py", line 84, in activate
    self.value = unicode(raw_input('%s> ' % self.label), sys.stdin.encoding)
TypeError: unicode() argument 2 must be string, not None

Jotain siis standardisyötteen merkistökoodauksesta?

Teenkö itse jotain väärin vai onko ehkä ohjelmakoodissa tai jossain muussa vikaa?

noppelipoppeli

  • Käyttäjä
  • Viestejä: 3
    • Profiili
Heipä hei.

Sain vastauksen LinuxQuestions.orgin keskustelupalstalla.

Muokkasin tiedoston /usr/local/lib/python2.6/dist-packages/webvicli/menu.py riviä 84 näin:
Koodia: [Valitse]
   self.value = unicode(raw_input('%s> ' % self.label), sys.stdin.encoding)
-> self.value = unicode(raw_input('%s> ' % self.label), sys.stdin.encoding or 'utf-8')

Kaipa otan vielä yhteyttä Ajankiin, korjanneepa hän sitten asian tai ei.


Kiitos mielenkiinnosta. :)