Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
COVERek
Serdeczny Borsuk
Posty: 153 Rejestracja: 19 gru 2007, 19:35
Płeć: Mężczyzna
Wersja Ubuntu: 12.10
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:
Post
autor: COVERek » 21 wrz 2010, 12:09
Witam.
Mam taki oto skrypt do maili dla conky:
Kod: Zaznacz cały
#!/usr/bin/ruby
require 'net/imap'
# Stuff you can set
## If you can't figure out the first three, give up now
IMAP_USER = "coverek@xxxx.pl"
IMAP_PASS = "xxxxxx"
IMAP_SERVER = "mail.xxxx.pl"
## Are we using SSL?
SSL = true
## What port? Usually 993 for SSL
PORT = 993
# Use different method for calculating total messages on MS-Exchange
IS_EXCHANGE = false
## Which folder? Normally "INBOX" or "[Gmail]/All Mail" (for gmail)
IMAP_FOLDER = "INBOX"
## Maximum number of messages we want to show
MAX_MSG = 5 # Not yet implemented
## Output with conky formatting?
CONKYFIED = true
## Color choices
NEW_COLOR = "green"
SENDER_COLOR = "white"
SUBJ_COLOR = "grey"
CHARSET = "UTF-8"
def conkify(text,color)
text = " ${color #{color}}#{text} $color"
return text
end
def get_messages(conn)
imap = conn
imap.search(["NOT", "DELETED", "UNSEEN"]).each do |message_id|
envelope = imap.fetch(message_id, "ENVELOPE")[0].attr["ENVELOPE"]
from, subject = envelope.from[0].name == nil ? envelope.from[0].mailbox : envelope.from[0].name, envelope.subject
CONKYFIED == true ? puts("#{conkify(from,SENDER_COLOR)} $alignr#{conkify(subject,SUBJ_COLOR)}") : puts("#{from} #{subject}")
end
end
imap = Net::IMAP.new(IMAP_SERVER,port = PORT, usessl = SSL)
imap.login(IMAP_USER,IMAP_PASS)
imap.examine(IMAP_FOLDER)
IS_EXCHANGE == true ? counts = imap.search(["NOT", "DELETED", "UNSEEN"]).size : counts = imap.status(IMAP_FOLDER, ["UNSEEN"])["UNSEEN"]
counts > 0 ? ( puts("Nowe wiadomości: #{CONKYFIED == true ? conkify(counts,NEW_COLOR) : counts}"); get_messages(imap) ) : ( puts("${color grey}Brak nowych wiadomości") )
imap.disconnect
exit
Wynik owego skryptu to:
Kod: Zaznacz cały
${color white}COVERek $color $alignr ${color grey}=?utf-8?B?V2lhZG9tb8WbxIc=?= testowa. $color
Co zrobic zeby kodowanie w tytule bylo normalnie wyswietlane?
Linux User #462372 || Ubuntu User #20118
Hauleth
Wytworny Kaczor
Posty: 382 Rejestracja: 18 sie 2008, 17:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Post
autor: Hauleth » 21 wrz 2010, 13:43
Jeśli chodzi o kodowanie znaków to albo $KCODE = 'u' na początku lub -Ku do linii poleceń
COVERek
Serdeczny Borsuk
Posty: 153 Rejestracja: 19 gru 2007, 19:35
Płeć: Mężczyzna
Wersja Ubuntu: 12.10
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:
Post
autor: COVERek » 21 wrz 2010, 13:49
Dałem tak:
Kod: Zaznacz cały
#!/usr/bin/ruby
require 'net/imap'
$KCODE = 'u'
# Stuff you can set
...
lub
Kod: Zaznacz cały
#!/usr/bin/ruby
require 'net/imap'
$KCODE = 'UTF8'
# Stuff you can set
...
Nic sie nie zminilo...
P.S.
Generalnie cos kulawo dziala...
Kod: Zaznacz cały
coverek@vbox:~$ ruby -KUe 'p "łódź"'
"łód\305\272"
Linux User #462372 || Ubuntu User #20118
Hauleth
Wytworny Kaczor
Posty: 382 Rejestracja: 18 sie 2008, 17:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Post
autor: Hauleth » 21 wrz 2010, 19:49
A daj ruby -Ku. Mi wtedy bardzo ładnie działa.
COVERek
Serdeczny Borsuk
Posty: 153 Rejestracja: 19 gru 2007, 19:35
Płeć: Mężczyzna
Wersja Ubuntu: 12.10
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:
Post
autor: COVERek » 22 wrz 2010, 07:43
Kod: Zaznacz cały
coverek@vbox:~/.skrypty$ ruby -Ku imap.rb
${color grey}Nowe wiadomości: ${color green}1 $color
${color white}COVERek $color $alignr ${color grey}=?utf-8?B?V2lhZG9tb8WbxIc=?= testowa. $color
Hm... Nie hula.
Ale z tego co na necie wyczytalem, jest tutaj problem ze zczytywaniem maili i kodowaniem przez imapa... Ale za cholere nie wiem jak to zrobic.
----
Zainstalowalem ruby1.9, bo niby on juz potrafi to rokodowac to daje mi takie cos...
Kod: Zaznacz cały
coverek@vbox:~/.skrypty$ ./imap.rb
/usr/lib/ruby/1.9.0/net/imap.rb:1275:in `create_ssl_params': uninitialized constant Net::IMAP::VERIFY_PEER (NameError)
from /usr/lib/ruby/1.9.0/net/imap.rb:924:in `rescue in initialize'
from /usr/lib/ruby/1.9.0/net/imap.rb:917:in `initialize'
from ./mail.rb:43:in `new'
from ./mail.rb:43:in `<main>'
i jeszcze na marginesie...
Kod: Zaznacz cały
coverek@vbox:~/.skrypty$ ruby -KUe 'p "łódź"'
"łód\305\272"
coverek@vbox:~/.skrypty$ ruby1.9 -KUe 'p "łódź"'
"łódź"
Linux User #462372 || Ubuntu User #20118
Hauleth
Wytworny Kaczor
Posty: 382 Rejestracja: 18 sie 2008, 17:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Post
autor: Hauleth » 22 wrz 2010, 20:27
Bo ruby 1.9 o ile dobrze pamiętam to z automatu leci po UTF-8
rack
Post
autor: rack » 22 wrz 2010, 23:39
Kcode to w ruby 1.8.6 lub 1.8.7.
Kodowanie pliku źródłowego w 1.9.x możesz sobie ustawić tak:
wrzuć to w drugą linię po shebangu.
Odpal sobie ten przykład u siebie i zobacz czy są błędy:
http://www.devdaily.com/blog/post/ruby/ ... rch-fields
Versie 1.9.1 krzaczą. Jak masz czas to zainstaluj najnowszą dostępną i zobacz jak to działa. Imapa dawno nie używałem ale też nie pamiętam abym miał z tym jakiś kłopot ...
pozdrawiam
Hauleth
Wytworny Kaczor
Posty: 382 Rejestracja: 18 sie 2008, 17:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Post
autor: Hauleth » 23 wrz 2010, 21:16
Sic. @COVERek mówię ci jasno, że u ma być małe pisz do cholery ruby -Kue 'p "Zażółć gęślą jaźń"'.
Radarek
Piegowaty Guziec
Posty: 9 Rejestracja: 23 kwie 2006, 18:58
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Inne
Architektura: x86_64
Kontakt:
Post
autor: Radarek » 29 wrz 2010, 11:57
Kodowania w ruby1.8 generalnie są skopane - nie jest to tajemnicą.
Kod: Zaznacz cały
$ ruby -e "p 'ąęć'"
"\304\205\304\231\304\207"
$ ruby -e "puts 'ąęć'"
ąęć
$ ruby -Ku -e "puts 'ąęć'"
ąęć
$ ruby -Ku -e "p 'ąęć'"
"ąę\304\207"
Nie oznacza to jednak, że nie da się w ogóle obsłużyć utfa (w końcu większość aplikacji webowych korzysta z utf i niejedna używa ruby).
Spróbuj z 1.9, ale z wersją najnowszą (1.9.2) bo widzę, że próbowałeś na 1.9.0, która była wersją niestabilną. Jeśli nie ma w paczkach to bardzo łatwo można zainstalować poprzez rvm (
http://rvm.beginrescueend.com/ ).
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości