Twitter awk-ból

 ( hrgy84 | 2010. január 12., kedd - 14:22 )

Twitter postoló awk script: erre

Hozzávalók:
- awk (gawk-val teszteltem)
- curl

Használat:
1) Állítsd be a twuser/twpass változók értékeit a twitteres userneved/jelszavadra
2) Postolás: echo "Message" | ./twitter.awk

Update: kérésre interaktív verzió erre
Használat:
1) Állítsd be a twuser/twpass változók értékeit a twitteres userneved/jelszavadra
2) Postolás: ./twitter.awk

Update 2: az első verzió URL-jét frissítettem, nincsenek immár DEBUG üzenetek benne.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

> 2) Postolás: echo "Message" | ./twitter.awk

Az eleganciaja hagy nemi kivannivalot maga utan ;-)
En ugy csinalnam, hogy az uzenetet interaktivan kerje be, es pl ^D-vel lehessen lezarni.

Done. Meghagyom az első verziót is, mert azzal például parancskimenetet is lehet postolni (uptime, epenis.sh, ...).
Amugy az eredetivel bash alatt megy a `twitter.awk <<< "Message"` is.
--

()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Nalam mind a ket verzio mukodik interaktivkent es pipe-al is.
Tulkepp amit pipeon keresztul kap az is stdin-re megy, csak ott ugye levan zarva EOF-al, interaktiv modba meg nekunk kell lezarni ^D-vel.

Én meg:
./twitter.awk 'ez itt az üzenet'
nem *kell* azt a paramétert mindenáron fájlnévnek értelmezni. (sőt még jobb lenne a
./twitter.awk ez itt az üzenet
forma :-)

OK, de awk-ban hogy oldod meg?
--

()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

mint c-ben:

for(i = 1; i < ARGC; i++) {
printf("%s ", ARGV[i]);
}

/* bocs az esetleges helyesirasi hidakert */

Mármint mindezt az összes többivel a BEGIN mintához tartozó akcióban, és semmilyen más minta/akció ne legyen. (Bocs, ha ez triviális volt.)

Olvasas bashbol:


#!/bin/bash

USERNAME=''
PASSWORD=''

wget -q http://$USERNAME:$PASSWORD@twitter.com/statuses/friends_timeline.rss -O - | grep -v \<title\> | grep -v \<guid\> | grep -v \<pubDate\> | grep -v \<link\> | grep -v \<language\> | grep -v \<ttl\> | sed -e 's#<[^>]*>##g' -e 's/^[ \t]*//;s/[ \t]*$//' -e '/^[ \t]*$/d' -e 's/:/:\t/'

(Tudom hogy nem regularis nyelv, kiparzoltam akkoris, esakkormivan? =D)

Unknown post id, it may have expired or been deleted

Trey torolhette, mert benne maradt az en beallitasom. Megint felraktam oket, de majd mindjart talalok nekik jobb helyet. Codepad v ilyesmi.
--

()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Menj, pörgess egyet... :-)

Igen, gondoltam ra... baromi kellemetlen. Fur alle felle, atirtam a jelszavam is a twitteren.
--

()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

trey tagadni fogja hogy torolte

hogyhogy nem ruby? :D

--
NetBSD - Simplicity is prerequisite for reliability

mar nehogy felkene telepiteni gigakat 1 szar tweeter..

Mert arra van kismillio lib. Awk-ban kihivas volt. Btw, tesztelhetned BSD-s awk-val...
--

()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Jelenleg nincs olyan, hogy BSD-s awk. Tudtommal 3 (no jó, 3 és fél * ) awk van a *X világban: a GNU-féle gawk (ez van a legtöbb Linux disztróban), a Mike Brennan-féle mawk (általában ez is elérhető csomagból), és a "One_True_Awk form the K(ernighan) of AWK" - no ez is elérhető általában Linuxokon nawk néven. Ez utóbbit használja a FreeBSD és a NetBSD (meg a kereskedelmi Jujnikszok általában) alapból X ideje. (Ja, ha twittereznék, persze már kipróbáltam volna neked mind a 3-mal :-) )

(*) Minixhez van valami awk-szerű, ami nem ez a 3, de mintha egy csomó dolgot nem tudna. És ha valaki tud más, forrásban elérhető, *X alatt futtatható AWK implementációt, nyugodtan megoszthatná velem az URL-jét.

Szerk: a nawk-ot használja a (man szerint) a DragonflyBSD és az OpenBSD is, a vicces, hogy mennyire eltérnek a man-ok egymástól. De mind a 4 végén szerepel a fenti for ciklus, amivel pl. az echo-t lehet szimulálni, és ez a csodálatos mondat:

"The scope rules for variables in functions are a botch; the syntax is worse."

Ellenben a DFly-éban egyáltalán nem írnak az AWK-nak átadható opciókról, az OBSD-féle man-ban ezzel szemben szerepel két olyan opció, ami egy szimpla teszt alapján a FreeBSD-ben is megvan, de semelyik másik BSD-nek a doksija nem ír róla. (-dXX debug flag és -safe flag. Furcsa.) Ez gondolom az eredeti nawk-ból jöhet.

Szerk2 (most már abbahagyom) - az OBSD-t visszavonom - nem tudom ilyen awk van benne, vannak benne olyan funkciók is, amelyek csak a gawk-ban vannak. Szóval tudja a nyavalya, majd valaki akinek van OBSD-je futtat egy "awk -V" -t és megmondja a frankót.

Juj. Mac-en akartam kiprobalni, de ott gawk van... Egyebkent en is errol a 3-rol tudtam (m|n|g)awk, csak mivel nem tudtam, hogy a BSD akkor melyiket is hordozza, ezert lett ez a koruliros dolog.
--

()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Idézet:
És ha valaki tud más, forrásban elérhető, *X alatt futtatható AWK implementációt, nyugodtan megoszthatná velem az URL-jét.

busybox awk?

(gyanitom, hogy megirtak maguknak kicsire, nem tudom, melyik verzio alapjan keszult)

Azzal szinte biztos, hogy nem kompatibilis.
--

()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.