[Python] Pranešimai apie naujus el. laiškus

Parašykite komentarą

Visą gyvenimą turėjau programą kuri praneša apie naujus laiškus, vienu metu naudojau vieną, kitu kitą… Viskas priklausė nuo naudojamos darbastalio aplinkos, nuo skydelio ar dar nuo kažko. Kadangi praktiškai viską stengiuosi naudoti kuo labiau nepriklausomą nuo darbastalio aplinkos ar šiaip nuo ko nors tai nusprendžiau ir šią programą pakeisti į labiau nepriklausomą. Išbandžiau daug programų, dauguma nebepalaikomos ir nebeveikia taip kaip priklauso arba netiko/nepatiko. Todėl nusprendžiau paieškot kuo paprastesnio varianto, pirmiausiai radau fetchmail, bet ten buvo per daug jau viskas painu ir ne taip paprasta kaip iš pradžių atrodė. Tada atradau python biblioteką „imaplib“, aš pats neprogramuoju (kodą skaityt sugebu, juk aš vertėjas) tai paimiau kelis pavyzdžius iš google ir padariau tai ko man reikėjo :)

#!/usr/bin/env python
import imaplib
import base64
import os
import time
def check_mail():
	obj = imaplib.IMAP4_SSL('imap.gmail.com','993')
	obj.login('gymka@archlinux.lt',base64.decodestring(b"c2xhcHRhxb5vZGlz").decode("utf-8"))
	obj.select()
	obj.search(None,'UnSeen')

	obj2 = imaplib.IMAP4_SSL('imap.gmail.com','993')
	obj2.login('margevicius.algimantas',base64.decodestring(b"c2xhcHRhxb5vZGlz").decode("utf-8"))
	obj2.select()
	obj2.search(None,'UnSeen')

	obj3 = imaplib.IMAP4_SSL('imap.mail.ru','993')
	obj3.login('gymka@mail.ru',base64.decodestring(b"c2xhcHRhxb5vZGlz").decode("utf-8"))
	obj3.select()
	obj3.search(None,'UnSeen')

	box1 = len(obj.search(None, 'UnSeen')[1][0].split())
	box2 = len(obj2.search(None, 'UnSeen')[1][0].split())
	box3 = len(obj3.search(None, 'UnSeen')[1][0].split())

	laisku=box1+box2+box3

	if laisku>0:
		os.system("mplayer /home/gymka/.config/email/DingDongNewEmail.wav >/dev/null 2>&1")
		la="gymka@archlinux.lt: %s" % box1
		la2="margevicius.algimantas: %s" % box2
		la3="gymka@mail.ru: %s" % box3
		cmd="export DISPLAY=:0; notify-send -i \"thunderbird\" \"Paštas:\n"+la+"\n"+la2+"\n"+la3+"\""
		os.system(cmd)
while (1==1):
	check_mail()
	time.sleep(300)

komentarų kaip ir nereik, viskas čia aišku. „c2xhcHRhxb5vZGlz“ yra slaptažodis užkoduotas base64 kodavimu, tai padaryta tam jog kasnors žiūrintis per petį nepamatytų slaptažodžio :)

Saugumo sumetimais tą scenarijų sukompiliavau:

python
>>> import py_compile
>>> py_compile.compile("mail.py")

gautą .pyc failą pervadinau į maždaug „hasdsa“ ir perkėliau į akis nekrentančią vietą, į akis nekrentančioje auto paleidimo vietoje(LXDE: ~/.config/lxsession/LXDE/autostart) įdėjau to failo paleidimo komandą(@/usr/bin/python /vieta/hasdsa) ir viskas :) Scenarijus kas 5min patikrina ar yra naujų laiškų, jei yra praneša garsu ir pranešimo „burbulu“. Mano naudojamas garsas

EDIT:
praktikoj pasirodė jog žinot ar yra naujų laiškų maža, reikia žinot kas per laiškai ir ar verta vargintis ir atvert pašto programą :) Atnaujintas kodas: https://github.com/gymka/check_mail

Firefox 20 – epic fail?

Komentarų: 1

firefox
Raudona spalva – nepatenkinti žmonės
Žalia spalva – patenkinti žmonės
Lentelė paimta iš http://input.mozilla.org

Aš ir pats grįžau prie firefox 19, jei taip ir toliau tai… sudie firefox, labas chromium. Man asmeniškai tai labai smarkiai užkliuvo tai jog naršant privačiam režime išjungiama tema. Tai yra toks didelis minusas jog aš (ne vien aš) galvoju pereit prie kitos naršyklės, kiek teko skaityt firefox 22 atstatė tą funkcionalumą, bet ar mes ištversim iki firefox 22?

Libreoffice neveikia rašybos tikrinimas

Parašykite komentarą

Įsirašiau lietuvių kalbą į „libreoffice“ ir iškart bėdos :D Kartu su lietuviška sąsajos kalba įdiegė ir papildinį kurio aš neprašiau ir man jo nereikia. Pas mane sistemoje rašybos tikrinimui naudojamas „hunspell-lt“, o libreoffice man įdiegė kažkokį kitokį. Kartu jie atsisako veikti, nustatymuose pažymėjus kurį nors ir paspaudus „gerai“ ir kitą kart sugrįžus į tą dialogą abu būna atžymėti. Ištrinti hunspell iš sistemos (ir prarasti rašybos tikrinimą visoje sistemoje) tik tam, kad turėčiau rašybos tikrinimą libreoffice nelogiška, todėl reikia ištrinti libreoffice papildinį. Jis kažkodėl užrakintas ir jo ištrinti geruoju negalima (primena windows mąstymą „mes geriau žinom ko jums reikia“). Todėl šalinam jį piktuoju:
sudo rm -R /usr/lib/libreoffice/share/extensions/dict-lt
ir viskas, dabar rašybos tikrinimas vėl veikia :)

Išsikrausčiau :)

Parašykite komentarą

Nuo gruodžio mėnesio įrašus(tokius kurių negėda ir žmogui parodyt) rašau Atviro kodo mokymo centre http://akmc.lt

Šitam tinklarašty ir toliau rašau tik užrašus asmeniniams tikslams.

Kaip verčiau šalių pavadinimus Wiki formato lentelėje

Parašykite komentarą

Yra wiki formato lentelė:

===Šalys===
{| cellspacing="0" style="border:2px solid #cEDFF2; -moz-border-radius: 5px -webkit-border-radius:5px;border-radius:5px; background:#CEDFF2; border-collapse:collapse; text-align:left;"
|-style="background-color: #d8ECFF; border-bottom: 1px solid #000000; height=27px"
! style="width:150px" | &nbsp; &nbsp; &nbsp; <small>Šalis</small>
! style="width:200px" | &nbsp; &nbsp; &nbsp; <small>IRC kanalas</small>
! style="width:280px" | &nbsp; &nbsp; &nbsp; <small>Oficialus forumas</small>
|-style="background-color: #d8ECFF"
! [[Argentina]]
|'''#esim.arg''' @'' irc.Rizon.net''
! http://esimargentina.foroargentina.net//
|-style="background-color: #f5FAFF"
! [[Australia]]
|'''#simAus''' @'' irc.Rizon.net''
! http://www.esimaustralia.smfnew.com/
|-style="background-color: #d8ECFF"
! [[Belgium]]
|'''#e-sim.be''' @'' irc.Rizon.net''
! http://www.e-sim.be//
|-style="background-color: #f5FAFF"
|}

ir reikia išversti šalių pavadinimus, išverstas variantas turi atrodyt „[[Belgium | Belgija]]“, kadangi šalių daug, o aš linux naudotojas tai savaime aišku naudojau man suteiktus įrankius.
Šalių pavadinimus išverst sugeba ir google translate, vistiek visi pavadinimai kilmininko linksniu tai jokių bėdų. Pirmiausia reikia šalies pavadinimą padaryt išverstos eilutės formatu:

sed -i 's/! \[\[\(.*\)\]\]/! [[x\1|\1]]/g' countries.txt

vienu žodžiu paima „! [[Belgium]]“ ir padaro „! [[xBelgium | Belgium]]“. „x“ reikalingas tam jog google translate išverstų tik antrą žodį, pirmas turi likt angliškai. Kadangi google translate bando tekstą pataisyt, darydama prielaidą jog tai normalus tekstas tai šiuo atveju tekstą sugadina. Todėl į google translate neįklijuojam viso formatavimo, įklijuojam tik šalies dalį

! [[xArgentina | Argentina]]
|'''#esim.arg''' @'' irc.Rizon.net''
! http://esimargentina.foroargentina.net//
|-style="background-color: #f5FAFF"
! [[xAustralia | Australia]]
|'''#simAus''' @'' irc.Rizon.net''
! http://www.esimaustralia.smfnew.com/
|-style="background-color: #d8ECFF"
! [[xBelgium | xBelgium]]
|'''#e-sim.be''' @'' irc.Rizon.net''
! http://www.e-sim.be//
|-style="background-color: #f5FAFF"

google translate vistiek daug prigadina, bet tai nesunku pataisyt. Pakeičia „”’“ į „” “, kai kur dingsta „[“, kai kur prideda tarpų, taip kaip jie būtų reikalingi sakiny.
Originale kanalo pavadinimas prasideda iš mažosios, po google pataisymo jis prasideda didžiąja, galim ir tai pataisyt:

sed 's/\#\(.\)/\L#\1/' countries.txt

paima „#E-sim.LT“ ir paverčia „#e-sim.LT“ jei reik visas raides paverst mažosiom, tai po taško pridedam „*“

sed 's/\#\(.*\)/\L#\1/' countries.txt

Reklama:
Šiaip nieko nereklamuoju, bet šiuo atveju už reklamą man kaip ir moka :)
E-Sim tai yra tikro pasaulio simuliacija. Galite tapti vienos iš 46 šalių piliečiu ir dalyvauti jos politiniame, kariniame, socialiniame ir ekonominiame gyvenime.

Jūsų pilietis gali tapti eiliniu kareiviu, kompanijos savininku ar tapti politiku ir bandyti tapti šalies prezidentu! Galite susikoncentruoti ties savo karjera arba padėti savo šaliai mūšiuose ir karuose. Galite sukurti savo privačią samdinių armiją arba plėsti verslą. Jūsų teisė rinktis!
Jei užsiregistruosite per mano ref nuorodą ir pasieksite 7 lygį, aš gausiu 5 aukso, jūs 2. Jei nenorit padėt man, padėkit bent sau, registracijos puslapyje, langelyje kur klausiam kas pakvietė įrašykit „admin“. Pasiekę 7 lygį gausite 2 aukso, o administratorius vistiek praktiškai nežaidžia tai ir jam gero nepadarysite :)

List Open Files

Parašykite komentarą

Kartais bandant atjungti flash laikmeną gaunamas pranešimas jog ją kažkas naudoja, kartais kopijuojant failus įvyksta klaidos ir atsiranda tokie failai kaip „.fuse_hidden0000001e00000010“ tokie failai būtų buvę ištrinti, bet kadangi įvyko klaida jie liko. Susidūrus su tokiom bėdom į pagalbą ateina komanda „lsof“ (list open files).

lsof /run/media/naudotojas/flash_etiketė

ir matom kas naudoja mūsų laikmeną. Kai žinom kas naudoja galim nutraukt tą procesą ir saugiai atjungt laikmeną.

lsof .fuse_hidden0000001e00000010

ir matom kas naudoja tą failą. Kai žinom kas naudoja galim nutraukt tą procesą ir pašalint failą.

Reikalingų pdf failo puslapių ištraukimas

Parašykite komentarą

Turiu didelį pdf failą, man reikia tik 4 jo puslapių. Saugot visą failą neapsimoka.

gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER -dFirstPage=7 -dLastPage=10 -sOutputFile=naujas_failas.pdf didelis_pdf_failas.pdf

eilutė per ilga ir praktikoj sunkiai panaudojama, todėl .bashrc faile įrašom:

function pdf-extract()
{
# this function uses 3 arguments:
# $1 is the first page of the range to extract
# $2 is the last page of the range to extract
# $3 is the input file
# output file will be named "inputfile_pXX-pYY.pdf"
gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dSAFER \
-dFirstPage=${1} \
-dLastPage=${2} \
-sOutputFile=${3%.pdf}_page${1}_to_page${2}.pdf \
${3}
}

tada terminale galim naudot:

pdf-extract 7 10 didelis_pdf_failas.pdf

ir gausim failą didelis_pdf_failas_page7_to_page10.pdf
Šaltinis

Senesni įrašai

Sekti

Gaukite kiekvieną naują įrašą į savo dėžutę.