Jam Fuzzy Pada Status Adium

3 Comments
Posted 03 Nov 2008 in Programming

Dalam satu minggu ini banyak sekali yang protes, bertanya, salah paham atau kesal pada status Yahoo! Messengerku, yang selalu menampilkan jam saat ini. Bukan jam tepat sih, melainkan jam fuzzy.

Sebenarnya bukan cuma pada Yahoo! Messenger, karena status itu aku terapkan pada aplikasi Adium, sehingga semua account chat-ku yang lain juga terpengaruh dengan status tersebut.

Status menampilkan antara lain “jam sepuluh lebih seperempat”, atau “jam setengah dua belas lebih lima”, dan seterusnya.

Kebanyakan teman pada curiga aku mengetik status tersebut secara manual, mengganti status secara terus menerus. Lha kok nganggur banget sampai harus melakukan itu.

Faktanya, aku menggunakan script kecil yang aku tulis dalam AppleScript, yang dijalankan oleh crontab setiap 3 menit.

Script ini hanya berjalan pada Mac OS, dengan aplikasi Adium. Bagi yang tidak menggunakan 2 itu, maka tidak dapat menggunakan script ini :)

Berikut ini script jamfuzzy.sh:


#!/usr/bin/osascript
-- Menampilkan jam sekarang berupa kata-kata
-- pada isi status Adium
-- Aryo Sanjaya, 2008, aryo@aryosanjaya.net


on namaJam(jam)
if jam is greater than 12 then set jam to jam - 12
if jam is less than 1 then set jam to 12
set arrjam to {"satu", "dua", "tiga", "empat", "lima", "enam", "tujuh", "delapan", "sembilan", "sepuluh", "sebelas", "duabelas"}
return item jam of arrjam
end namaJam


set menit to minutes of (current date)
set jam to namaJam(hours of (current date))
set nextjam to namaJam((hours of (current date)) + 1)


if menit is less than 2 then
set sekarang to "jam " & jam & " pas"
else if menit is less than 4 then
set sekarang to "jam " & jam & " lebih sedikit"
else if menit is less than 6 then
set sekarang to "jam " & jam & " lebih lima"
else if menit is less than 8 then
set sekarang to "jam " & jam & " lebih delapan"
else if menit is less than 12 then
set sekarang to "jam " & jam & " lebih sepuluhan"
else if menit is less than 17 then
set sekarang to "jam " & jam & " lebih seperempat"
else if menit is less than 22 then
set sekarang to "jam " & jam & " lebih duapuluhan"
else if menit is less than 27 then
set sekarang to "jam " & jam & " lebih dualimaan"
else if menit is less than 32 then
set sekarang to "jam setengah " & nextjam & " pas"
else if menit is less than 37 then
set sekarang to "jam setengah " & nextjam & " lebih limaan"
else if menit is less than 41 then
set sekarang to "jam setengah " & nextjam & " lebih sepuluhan"
else if menit is less than 47 then
set sekarang to "jam " & nextjam & " kurang seperempat"
else if menit is less than 52 then
set sekarang to "jam " & nextjam & " kurang sepuluh"
else if menit is less than 58 then
set sekarang to "hampir jam " & nextjam
else
set sekarang to "jam " & nextjam & " pas"
end if


tell application "System Events"
if exists process "Adium" then tell application "Adium" to set status message of every account to sekarang
end tell

Atau download scriptnya dari sini: jamfuzzy.sh

Simpan script jamfuzzy.sh pada folder home (misalnya), lalu masuk ke Console:

Berikan attribute executable:
chmod +x jamfuzzy.sh

Masukkan ke dalam crontab:
crontab -e

tekan i (masuk ke mode insert), lalu paste baris seperti ini:
*/3 * * * * /Users/aryosanjaya/jamfuzzy.sh > /dev/null

Ubah lokasi script di atas sesuai lokasi script jamfuzzy.sh. Kalau sudah, tekan ESC, lalu :wq <enter>

Selesai.

Nanti setiap menjalankan Adium, statusnya akan berubah sesuai jam saat ini, namun dengan tampilan yang beda.


3 Comments

  1. katanya php om?? huuuuu

    Reply
  2. sik tah, sing murni AppleScript wae awakmu sik failed ngono :-”

    Reply
  3. di tambah ini :
    do shell script “echo ” & sekarang & ” | say”

    biar ada suaranya :D
    sayang logatnya aneh hahahaha

    Reply


Add Your Comment