Kirjoittaja Aihe: Pienet näppärät scriptit (bash, python, perl yms.)  (Luettu 114311 kertaa)

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11447
    • Profiili
    • Tomin kotisivut
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #60 : 10.02.08 - klo:12.46 »
Juu pitäisi. Kiitos. :)
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

larpa

  • Vieras
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #61 : 24.02.08 - klo:10.09 »
#IhQ kikkare hakee irc-galleriasta satunnaisia kuvia ja avaa niitä 3 sekunnin välein eog-ohjelmalla
#scriptistä pääsee pois Ctrl+c :)
#eog täytyy olla asennettuna(jos ei ole niin: sudo apt-get install eog)
#en ota vastuuta menetetyistä tiedostoista

#!/bin/bash
cd                              #siirrytään kotihakemistoon
mkdir KuvatXyZklM   # tehdään väliaikaistiedosto, ettei poisteta .jpg-tiedostoja
cd KuvatXyZklM
while true; do            #tästä alkaa loputon looppi
OSOITE=`lynx -source http://irc-galleria.net/random.php | grep jpg | tail -1 | cut -d " " -f4 | cut -d "=" -f2 | sed 's/"//g'`
wget $OSOITE
eog *.jpg &
sleep 3
killall eog
rm *.jpg
done



mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #62 : 24.02.08 - klo:12.16 »
#IhQ kikkare hakee irc-galleriasta satunnaisia kuvia ja avaa niitä 3 sekunnin välein

Laitetaan nyt oma näkemys tästä. Kuvien näyttämiseen käytetään feh-ohjelmaa, kaikkia ohjelman instansseja ei tapeta eikä kotihakemistoon luoda ylimääräistä hakemistoa. Lisäksi sivu haetaan wget:n avulla hieman harvinaisemman lynx:n sijasta.

Koodia: [Valitse]
#!/bin/bash

while true; do
    imageUrl="$(wget -q -O - 'http://irc-galleria.net/random.php' \
    | tr '<>' '\n\n' \
    | grep -io -m1 'http://[^"]*.jpg')"

    feh "$imageUrl" &
    sleep 3
    kill $!
done

Toinen vaihtoehtoinen tapa jossa hyödynnetään Konqueror-selainta kuvien näyttämiseen. Tieto uuden kuvan osoitteesta kerrotaan dcop:n avulla. Ohjelma pysähtyy kun selainikkuna suljetaan.

Koodia: [Valitse]
#!/bin/bash

pid="$(kshell konqueror | grep -o '[0-9]\+')"

while true; do
    imageUrl="$(wget -q -O - 'http://irc-galleria.net/random.php' \
    | tr '<>' '\n\n' \
    | grep -io -m1 'http://[^"]*.jpg')"

    dcop konqueror-$pid 'konqueror-mainwindow#1' openURL "$imageUrl" &>/dev/null \
    || exit 0

    sleep 3
done

Marbo

  • Käyttäjä
  • Viestejä: 427
    • Profiili
    • Toimi.org
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #63 : 24.02.08 - klo:12.42 »
#IhQ kikkare hakee irc-galleriasta satunnaisia kuvia ja avaa niitä 3 sekunnin välein eog-ohjelmalla
#scriptistä pääsee pois Ctrl+c :)
#eog täytyy olla asennettuna(jos ei ole niin: sudo apt-get install eog)
#en ota vastuuta menetetyistä tiedostoista

#!/bin/bash
cd                              #siirrytään kotihakemistoon
mkdir KuvatXyZklM   # tehdään väliaikaistiedosto, ettei poisteta .jpg-tiedostoja
cd KuvatXyZklM
while true; do            #tästä alkaa loputon looppi
OSOITE=`lynx -source http://irc-galleria.net/random.php | grep jpg | tail -1 | cut -d " " -f4 | cut -d "=" -f2 | sed 's/"//g'`
wget $OSOITE
eog *.jpg &
sleep 3
killall eog
rm *.jpg
done




#IhQ kikkare hakee irc-galleriasta satunnaisia kuvia ja avaa niitä 3 sekunnin välein

Laitetaan nyt oma näkemys tästä. Kuvien näyttämiseen käytetään feh-ohjelmaa, kaikkia ohjelman instansseja ei tapeta eikä kotihakemistoon luoda ylimääräistä hakemistoa. Lisäksi sivu haetaan wget:n avulla hieman harvinaisemman lynx:n sijasta.

Koodia: [Valitse]
#!/bin/bash

while true; do
    imageUrl="$(wget -q -O - 'http://irc-galleria.net/random.php' \
    | tr '<>' '\n\n' \
    | grep -io -m1 'http://[^"]*.jpg')"

    feh "$imageUrl" &
    sleep 3
    kill $!
done

Toinen vaihtoehtoinen tapa jossa hyödynnetään Konqueror-selainta kuvien näyttämiseen. Tieto uuden kuvan osoitteesta kerrotaan dcop:n avulla. Ohjelma pysähtyy kun selainikkuna suljetaan.

Koodia: [Valitse]
#!/bin/bash

pid="$(kshell konqueror | grep -o '[0-9]\+')"

while true; do
    imageUrl="$(wget -q -O - 'http://irc-galleria.net/random.php' \
    | tr '<>' '\n\n' \
    | grep -io -m1 'http://[^"]*.jpg')"

    dcop konqueror-$pid 'konqueror-mainwindow#1' openURL "$imageUrl" &>/dev/null \
    || exit 0

    sleep 3
done

Saisko näihin viel et se pöllii nickinki? :D

Linux user #460798

larpa

  • Vieras
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #64 : 24.02.08 - klo:18.56 »
Empä jaksanu väsätä mitään pro-tason kikkaretta tuosta.
Näpytin mitä mieleen tuli ja se siitä.
Aluksi tuo ohjelma ei hakenut kuvia laisinkaan ja ne esitettiin dillolla, jotenkin en tykännyt siitä.

Marbo

  • Käyttäjä
  • Viestejä: 427
    • Profiili
    • Toimi.org
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #65 : 24.02.08 - klo:19.01 »
Mutta kuinka vaikee toi on sit toteuttaa niin, että se tallentaa kuvan käyttäjän nickillä? Tälläsen vastauksen sain yhestä paikkaa mutta en osaa käyttää tätä oikein, että saisin toimimaan.

Lainaus
Mutta hommahan hoituu niin, että kun tuon random.php:n olet ladannut (selain uudelleenohjataan random käyttäjän sivulle), kaivat sorsasta img-tagin, jonka id on viewimage_image. Voit kaivaa myös ko. elementistä alt attribuutista käyttäjän nickin.

Linux user #460798

larpa

  • Vieras
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #66 : 24.02.08 - klo:19.03 »
Mutta kuinka vaikee toi on sit toteuttaa niin, että se tallentaa kuvan käyttäjän nickillä? Tälläsen vastauksen sain yhestä paikkaa mutta en osaa käyttää tätä oikein, että saisin toimimaan.

Lainaus
Mutta hommahan hoituu niin, että kun tuon random.php:n olet ladannut (selain uudelleenohjataan random käyttäjän sivulle), kaivat sorsasta img-tagin, jonka id on viewimage_image. Voit kaivaa myös ko. elementistä alt attribuutista käyttäjän nickin.
nickin voi grepata sorsasta, helppoa on. Suosittelisin opettelemaan nuita peruskomentoja, jos kukaan ei oo tänään laittanut esimerkkiä niin laitan aiheesta esimerkin huomenna.
« Viimeksi muokattu: 24.02.08 - klo:19.06 kirjoittanut larpa »

Marbo

  • Käyttäjä
  • Viestejä: 427
    • Profiili
    • Toimi.org
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #67 : 24.02.08 - klo:19.16 »
Mutta kuinka vaikee toi on sit toteuttaa niin, että se tallentaa kuvan käyttäjän nickillä? Tälläsen vastauksen sain yhestä paikkaa mutta en osaa käyttää tätä oikein, että saisin toimimaan.

Lainaus
Mutta hommahan hoituu niin, että kun tuon random.php:n olet ladannut (selain uudelleenohjataan random käyttäjän sivulle), kaivat sorsasta img-tagin, jonka id on viewimage_image. Voit kaivaa myös ko. elementistä alt attribuutista käyttäjän nickin.
nickin voi grepata sorsasta, helppoa on. Suosittelisin opettelemaan nuita peruskomentoja, jos kukaan ei oo tänään laittanut esimerkkiä niin laitan aiheesta esimerkin huomenna.

Täältä olen katellut joitain komentoja. Man sivuista päätteessä en niin välitä. http://www.ss64.com/bash/

Edit: Mitäköhän vikana kun tämä ei nytten sitten toimi?

Koodia: [Valitse]
#!/bin/bash
cd 
mkdir Kuvat/irc-rand
cd Kuvat/irc-rand
while true; do
OSOITE=`lynx -source http://irc-galleria.net/random.php | awk '{if (/<img id="viewimage_image" src="(.+?)" alt="(.+?)"/) { print "nick: $2 url: $1" } }'`
wget $OSOITE
eog *.jpg &
sleep 3
killall eog
rm *.jpg
done
« Viimeksi muokattu: 24.02.08 - klo:20.24 kirjoittanut Marbo »

Linux user #460798

larpa

  • Vieras
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #68 : 24.02.08 - klo:23.06 »
#Marbon pyynnöstä
#Kikkare hakee irc-galleriasta satunnaisia kuvia ja avaa niitä 3 sekunnin välein eog-ohjelmalla
#jpg-kuvat avataan ja kuvan nimi on muutettu nick-nimeä vastaavaksi, ensimmäistä kuvaa lukuunottamatta
#En ota vastuuta menetetyistä tiedostoista
#Ohjelmasta pääsee pois Ctrl+c :)
#Sorsa on edelleen purkkaliima-asteella

#!/bin/bash

cd
mkdir Purkkaliima_ratkaisu
cd Purkkaliima_ratkaisu
while true;do
lynx -source http://irc-galleria.net/random.php > url.txt
NICK=`cat url.txt | grep '.*Profiili' | cut -d "=" -f5 | cut -d " " -f1 | sed 's/"//g'`
OSOITE=`cat url.txt | grep jpg | tail -1 | cut -d " " -f4 | cut -d "=" -f2 | sed 's/"//g'`
wget $OSOITE
mv *.jpg $NICK.jpg
eog *.jpg &
sleep 3
killall eog
rm *.jpg
rm url.txt
done

Marbo

  • Käyttäjä
  • Viestejä: 427
    • Profiili
    • Toimi.org
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #69 : 24.02.08 - klo:23.52 »
Doddi, nyt on parempi :>>

Linux user #460798

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #70 : 25.02.08 - klo:01.54 »
NICK=`cat url.txt | grep '.*Profiili' | cut -d "=" -f5 | cut -d " " -f1 | sed 's/"//g'`
mv *.jpg $NICK.jpg

En tiedä millaisia rajoituksia irc-gallerian nimimerkeissä on mutta tuo hajoaa mikäli parsittu nimimerkki sisältää välilyöntejä. Lainausmerkit kohteen ympärillä auttavat.

Toisaalta voisi olla fiksumpaa ladata tuo kuva suoraan oikealle nimelle antamalla wget:lle parametri -O FILE.

eDIT

  • Käyttäjä
  • Viestejä: 319
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #71 : 25.02.08 - klo:02.32 »
Mulla on tässä kehitteillä pikku käynnistysskripti LinuxDC++:n. Skripti tarkistaa onko ulkoinen IP vaihtunut ja tarvittaessa muuttaa sen.

Kattoo nyt jos saisin huomisen.. I mean tämänpäivän aikana tänne. Nyt meinaan pitää mennä nukkumaan, koulupäivä, herätys 7.  ;D

larpa

  • Vieras
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #72 : 25.02.08 - klo:07.26 »
Lainaus
En tiedä millaisia rajoituksia irc-gallerian nimimerkeissä on mutta tuo hajoaa mikäli parsittu nimimerkki sisältää välilyöntejä. Lainausmerkit kohteen ympärillä auttavat.

Mielestäni ei ole mahdollista välilyönneille.
Toisaalta voisi olla fiksumpaa ladata tuo kuva suoraan oikealle nimelle antamalla wget:lle parametri -O FILE.
Nuo sorsat on vapaata riistaa ja mun puolesta sitä voi esittää vaikka omina sorsinaan muille :)
Ei muuta kuin kehittelmään IhQ sorsat oman mielen mukaan  ;)

Marbo

  • Käyttäjä
  • Viestejä: 427
    • Profiili
    • Toimi.org
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #73 : 25.02.08 - klo:17.17 »
Mitenköhän sais Kuvake.net:stä kans otettua noi nickit? Tällä ei onnistu? Enkä ole keksiny, että millä toi nick on sivujen koodissa? Ei ainakaan .Profiili?

Lainaus
NICK=`cat url.txt | grep '.*Profiili' | cut -d "=" -f5 | cut -d " " -f1 | sed 's/"//g'`
OSOITE=`cat url.txt | grep jpg | tail -1 | cut -d " " -f4 | cut -d "=" -f2 | sed 's/"//g'`

Linux user #460798

larpa

  • Vieras
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #74 : 25.02.08 - klo:17.58 »
Pientä vinkkiä:
 w3m -no-cookie -dump_source http://kuvake.net/random.php | grep jpg | cut -d "(" -f2 | cut -d ")" -f1

eDIT

  • Käyttäjä
  • Viestejä: 319
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #75 : 25.02.08 - klo:23.38 »
Noniin, tällänen purkkaviritys siitä sitten tuli:

Koodia: [Valitse]
#!/bin/bash
#
# External IP checker to LinuxDC++
# by eDIT @forum.Ubuntu-fi.org

# The main configuration file. Default is ~/.dc++/DCPlusPlus.xml
DCXML=~/.dc++/DCPlusPlus.xml

MYIP=(`wget http://myip.dk/ -O - -o /dev/null | grep '<title>' | sed -r 's/<title>Your IP: //g' | sed -r 's/<\/title>//g'`)
CURRENTIP=(`grep '<ExternalIp type="string">' $DCXML | sed -e 's/^[ \t]*//' | sed -r 's/<ExternalIp type="string">//g' | sed -r 's/<\/ExternalIp>//g' | sed 's/.$//'`)
NONEIP=(`grep '<ExternalIp type="string"></ExternalIp>' $DCXML`)

if [ -n "$NONEIP" ]
then
        exit 0
fi

if [ $MYIP = $CURRENTIP ]
then
        exit 0
else
sed -i "s/$CURRENTIP/$MYIP/g" $DCXML && echo "Changed old IP addres $CURRENTIP to new one. ($MYIP)"
fi

exit 0

Koska olin laiska, ldcpp:stä pitää olla asetettuna jokin IP että tuo osaa muuttaa sen. Ts. mikäli IP kohdassa on tyhjää, ei tuo myöskään siihen mitään aseta.

Saa vapaasti levittää, sempä takia tuohon englantia kirjoitinkin.
« Viimeksi muokattu: 26.02.08 - klo:00.19 kirjoittanut eDIT »

mgronber

  • Käyttäjä
  • Viestejä: 1458
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #76 : 26.02.08 - klo:01.07 »
IP-osoitteen saa hieman helpommin dyndns.org:n palvelusta.

Koodia: [Valitse]
$ wget -q -O - http://checkip.dyndns.org/ | grep -o '\([0-9]\+\.\)\{3\}[0-9]\+'

eDIT

  • Käyttäjä
  • Viestejä: 319
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #77 : 26.02.08 - klo:01.28 »
No samapa tuo, kun en nopeuksissa mitään eroa huomannut. Vieläkin helpommin taitaisi saada whatismyip.org:sta, mutta vaikuttaa hitusen hitaammalta (no onko tuolla nyt sitten väliä) ja näyttää kyselyjen määrää rajoittavan.

Migeman

  • Käyttäjä
  • Viestejä: 14
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #78 : 29.02.08 - klo:16.23 »
Simppeli painoindeksin laskija
Koodia: [Valitse]
# Painoindeksilaskuri, Migeman
print 'Painoindeksilaskuri'
pituus = input('pituutesi m: ')
paino = input('painosi kg: ')

painoindeksi = paino / (pituus * pituus)
print 'painoindeksisi on', painoindeksi
if painoindeksi <=18.5:
   print 'Olet alipainoinen :('
elif painoindeksi >= 25:
   print 'Olet ylipainoinen :('
else:
   print 'Olet normaalipainoinen, onnea :)'
Laskin, toimiva sinäänsä, mutta täysin turha oikeastaan.
Koodia: [Valitse]
#Laskin, Migeman
#skandit eivat toimi...
print 'Laskin'
print '1) pluslasku 2) miinuslasku 3) kertolasku 4) jakolasku'
laskutyyppi = input('Valitse laskutyyppi: ')
if laskutyyppi == 1:
 luku1 = input('1. luku: ')
 luku2 = input('2. luku: ')
 vastaus = luku1 + luku2
 print 'lukujen summa on:', vastaus
elif laskutyyppi == 2:
 luku1 = input('vahennettava: ')
 luku2 = input('vahentaja: ')
 vastaus = luku1 - luku2
 print 'lukujen erotus on:', vastaus
elif laskutyyppi == 3:
 luku1 = input('kerrottava luku: ')
 luku2 = input('kertoja: ')
 vastaus = luku1 * luku2
 print 'lukujen tulo on', vastaus
elif laskutyyppi == 4:
 luku1 = input('jaettava luku: ')
 luku2 = input('jakaja: ')
 vastaus = luku1 / luku2
 print 'lukujen jakojaannos on:', vastaus
else:
 print 'virhe, valitse luku 1-4'

Btw, miten noi skandit saa toimimaan Pythonissa, itellä tulee vaan error kun koitan laittaa niitä.
Ubuntun mukana tullutta Python 2.5 käytän.

raimo

  • Käyttäjä
  • Viestejä: 4197
  • openSUSE Tumbleweed
    • Profiili
Vs: Pienet näppärät scriptit (bash, python, perl yms.)
« Vastaus #79 : 29.02.08 - klo:16.35 »
Btw, miten noi skandit saa toimimaan Pythonissa, itellä tulee vaan error kun koitan laittaa niitä.
Ubuntun mukana tullutta Python 2.5 käytän.
Minen käärmekielestä ymmärrä mitään, mutta sehän kehottaa siinä virheilmossa lukemaan tämän:
http://www.python.org/dev/peps/pep-0263/ tuolla on pitkät sepostukset aiheesta.
Tietä käyden tien on vanki. Vapaa on vain umpihanki.
Aaro Hellaakoski