Hatena::Groupbugrammer

蟲!虫!蟲!

Esehara Profile Site (by Heroku) / Github / bookable.jp (My Service)
過去の記事一覧はこちら

なにかあったら「えせはら あっと Gmail」まで送って頂ければ幸いです。
株式会社マリーチでは、Pythonやdjango、また自然言語処理を使ったお仕事を探しています

 | 

2011-11-01

[]Gmailで新着メールが来たら、CDドライブをウィーンガッシャンと吐き出すコードを書いた 22:57

 たぶん、E-mailのお知らせは、何かしらのポップアップ等で知る方が多いとは思います。確かにポップアップは慎ましくて邪魔にならないという意味ではとてもいいんですけど、慎ましすぎて、気がついたら、メールを返さなきゃいけないのに返していない……ということになることが多いのではないかと。例えば、メールが新着できたら、「ESCキー」がびよーんと飛び出したりしたら、便利だし、かわいいのではないか。

 で、そういうリマインダーに使えそうなハードの機能を考えたところ、実はCDトレイがいいのではないか?ということに気がついた。最近のネットブックだったりすると、CDトレイがないハードもあり、何かと追い風が吹いてるCDトレイですが、ここでちょっと便利に使うことで、「あってよかったCDトレイ」という復権を図るのもいいのではないか、と思ったのでそうすることにした。

 他のOSはどうかわからないですけど、Ubuntuだと、おもむろにコンソール画面に「eject」と叩くと、「ぴょこん」とCDトレイがかわいらしく飛び出してきます。この機能を使って、今回はE-mailの新着をお知らせするシステムを作ろうかなと思います。

 f:id:nisemono_san:20111101224034j:image

 かわいいですね。

PythonからGmailの新着情報を読み込む

 まず、普段使っているGmailの新着情報をどのようにして受けとるか。Gmailなら受信にIMAPを使う。で、Pythonにはimaplibというのがついています。imaplibの使い方は下のような感じです。

mail = imaplib.IMAP4_SSL("imap.gmail.com")
mail.login(user,passw)
mail.list()
mail.select("Inbox")
status,maillist = mail.search(None,"(UNSEEN)")

 ソースがわかるなら簡単なんですけど、要するに"select"メソッドで、どのフォルダを読み込むか、という感じになっている。Gmailだと、Inboxが実質の受信トレイなので、そこを選択する。そこから、searchのメソッドを使う。ちなみに未読のフラグは"(UNSEEN)"を選択してやればいいので、それを使う。そうすると、タプルが渡される。例えば

('OK',[''])

 なにも無いときは上記のように表示される。したがって、未読があるかどうかの判定には、次のような実装を使う。

    if status == "OK":
        if maillist[0] is not '':
            print "New Mail"
        else:
            print "Not Mail"
この項の参考

Python — imaplib IMAP example with Gmail – Yuji Tomita @ Department NYC

Google グループ

CDトレイを吐き出す

 さて、次にPrintの"New Mail"のところを、CDを吐き出すようにしてあげないといけないわけだけど、Pythonでやるためにはどうするのか、というと、Pygameを使う(!!)という方法があるようす。本当になんだってやってくれるな、Pygame。(Pygameを読み込むよりは、Bashというか、コンソールに命令を渡してあげほうがいいのかなーとも思うんだけど、それはまたあとで)

    pygame.cdrom.init()
    cd = pygame.cdrom.CD(0)
    cd.init()
    cd.eject()

この項の参考

ブログが見つかりません

あとはcrontabに設定してあげれば完成

 というわけで、今回はサクッと出来てうれしい限り。あとは書き込みに失敗したCD-Rでも入れておけば、ちょっとかわいいメールチェッカーになるんじゃないかと。あとは、リマインダーの代わりにも使えるし、いろいろとアイデアはあるんじゃないのかなと思います。

 あと、この方法はPassを生で保存しているので、外部ファイルを使ったりするほうがいいのかな、とも思います。ではでは。

 f:id:nisemono_san:20111101224117j:image

実際のコード

 no title

ADriergifeADriergife2018/03/13 20:59 By dealing together, both of you can address problems of self-esteem and mutual trust. Once you discover the top natural options, you can yet again have full power over your sexual pleasures.
https://www.cialissansordonnancefr24.com/cialis-ou-cialis-generique/

AlbertsearkAlbertseark2018/08/18 22:29The men's prostate is the central section of a male's reproductive system. It secretes fluids that assist the transportation and activation of sperm. The prostate related can be found just in front of the rectum, below the bladder and around the urethra. When there is prostate problem, it will always be very uncomfortable and inconvenient for the patient as his urinary method is directly affected.

The common prostate medical problems are prostate infection, enlarged prostate and cancer of prostate.



Prostate infection, also referred to as prostatitis, is easily the most common prostate-related problem in men younger than 55 years. Infections from the prostate related are classified into four types - acute bacterial prostatitis, chronic bacterial prostatitis, chronic abacterial prostatitis and prosttodynia.

Acute bacterial prostatitis will be the least common of forms of prostate infection. It is brought on by bacteria found in the large intestines or urinary tract. Patients may feel fever, chills, body aches, back pains and urination problems. This condition is treated through the use of antibiotics or non-steroid anti-inflammatory drugs (NSAIDs) to ease the swelling.

Chronic bacterial prostatitis is really a condition associated with a particular defect in the gland along with the persistence presence of bacteria inside the urinary tract. It can be due to trauma towards the urinary tract or by infections from other areas in the body. A patient may feel testicular pain, lower back pains and urination problems. Although it is uncommon, it could be treated by removal from the prostate defect then making use antibiotics and NSAIDs to help remedy the soreness.

Non-bacterial prostatitis is the reason for approximately 90% coming from all prostatitis cases; however, researchers have not to establish the sources of these conditions. Some researchers think that chronic non-bacterial prostatitis occur because of unknown infectious agents while other believe intensive exercise and high lifting might cause these infections.

Maintaining a Healthy Prostate

To prevent prostate diseases, a proper diet is important. These are some of the things you can do to keep your prostate healthy.

1. Drink sufficient water. Proper hydration is necessary for general health and this will also keep your urinary track clean.

2. Some studies suggest that a couple of ejaculations each week will help to prevent prostate cancer.

3. Eat beef moderately. It has been shown that consuming greater than four meals of beef a week will heighten the probability of prostate diseases and cancer.

4. Maintain a suitable diet with cereals, vegetable and fruits to make sure sufficient intake of nutrients essential for prostate health.

The most important measure to look at to be sure a wholesome prostate is to go for regular prostate health screening. If you are forty years old and above, you need to go for prostate examination at least one time per year.

ACaxKeydayACaxKeyday2018/09/01 17:16 Compression est comment poupe votre sang pousse contre les parois de vos arteres lorsque votre coeur sentiment pompe le sang. Arteres sont les tubes qui transportent perseverent b gerer offre sang loin de votre coeur. Chaque culture votre determination bat, il pompe le sang a tous egards vos arteres a la vacances de votre corps.
https://www.cialispascherfr24.com/cialis-en-ligne-canada/

AtymnCyptonyAtymnCyptony2018/09/26 13:57 Torsion bras de quelqu'un est comment calleux votre sang pousse contre les parois de vos arteres lorsque votre coeur essence pompe le sang. Arteres sont les tubes qui transportent perseverent b gerer offre sang loin de votre coeur. Chaque set votre coeur bat, il pompe le sang a tous egards vos arteres a la flanerie de votre corps.
https://www.cialispascherfr24.com/cialis-feminin-lyon/

AtymnCyptonyAtymnCyptony2018/10/11 02:01Pression arterielle est comment dur votre sang pousse contre les parois de vos arteres lorsque votre coeur determination pompe le sang. Arteres sont les tubes qui transportent perseverent b gerer offre sang loin de votre coeur. Chaque temps votre coeur bat, il pompe le sang par vos arteres a la vacances de votre corps.
https://www.cialispascherfr24.com/tadalafil-100-mg-uk/

 |