Facebook App
Latihan pertama adalah untuk membuat aplikasi Facebook yang secara berkala memeriksa homepage Facebook kami secara visual dan melihat apakah seorang teman tertentu baru-baru ini memperbarui pesan status. Salah satu cara mudah untuk mendeteksi acara ini adalah untuk mencari gambar wajah teman di homepage Facebook kami. Jika ditemukan, artinya teman telah posting pesan status baru. Jika tidak ditemukan, kita harus memeriksa kembali lagi dalam beberapa saat.Mari kita menerapkan operasi ini menggunakan while: loop.
Pertama kita perlu untuk menangkap screenshot dari gambar wajah teman.
Untuk memeriksa apakah wajah teman bisa dilihat di layar, kita gunakan exists() , yang mengembalikan True ketika gambar wajah ditemukan. Kami mengatur kondisi looping untuk Tidak Ditemukan sehingga loop sementara akan berakhir hanya ketika gambar wajah ditemukan. Kami menambahkan sleep(n)pernyataan (statement) dalam tubuh loop untuk memrintahkan berhenti sejenak selama 5 detik diantara upaya untuk mencari gambar wajah di layar.
while not exist(): sleep (5)
Atau, Sikuli juga menyediakan fungsi yang mendukung wait() bila mau digunakan, fungsi yang secara berkala memeriksa layar untuk menunggu pola gambar yang diberikan untuk tampil. Menggunakan kode wait(), di atas dapat ditulis sebagai:
wait(,FOREVER)
Konstanta FOREVER berarti kita ingin Sikuli menunggu tanpa batas waktu. Jika kita tidak ingin menunggu selamanya, kita dapat mengganti FOREVER dengan angka, untuk menunjukkan jumlah detik untuk menunggu sampai Sikuli harus bangkit untuk melanjutkan perintah selanjutnya.
wait(,3600) # menunggu selama satu jam
Setelah keluar dari while: loop atau kembalian dari fungsi wait, kita dapat memanggil popup() untuk menampilkan pesan pemberitahuan.
popup ("Obama telah memperbarui pesannya")
Ini akan menampilkan pesan pop-up yang terlihat seperti di bawah ini:
Sekarang kita bisa menjalankan Sikuli Facebook App, duduk bersantai, dan dapatkan pemberitahuan saat teman kita update pesannya.
Skype App
Pada latihan sebelumnya, kami menulis script untuk mendeteksi tampilan gambar ini. Dalam latihan ini, kita akan melakukan hal yang sebaliknya - mendeteksi hilangnya pola visual.Skype adalah alat yang hebat yang memungkinkan kita untuk tetap berhubungan dekat dengan teman-teman kita bahkan jika mereka berada di bagian terpencil dunia. Namun, mungkin ada beberapa keadaan yang tidak menguntungkan sehingga kita mungkin ingin menghindari terlihat online oleh individu tertentu. Mungkin individu berbicara terlalu banyak. Mungkin kita berutang uang dengan individu tersebut ... hehehe. Ini akan menyenangkan bagi kita bila kita bisa tahu ketika sesorang tersebut sedang offline, sehingga aman bagi kita untuk online. Sementara Skype tidak menyediakan fitur untuk memberitahu kami ketika seseorang sedang online, pun tidak ada fitur pemberitahuan bila hal sebaliknya terjadi.
Sebuah logoff notifier otomatis, akan sangat diinginkan untuk menangani situasi ini. Mari kita membangun alat ini menggunakan Script Sikuli. Perhatikan bahwa jika seorang individu tidak lagi online, pola visual yang gabungan ikon status hijau dan nama layar individu akan hilang. Dengan demikian, kita bisa mengambil screenshot yang meliputi ikon hijau dan nama layar sebagai berikut.
Kemudian, kita dapat menulis Script Sikuli untuk memantau hilangnya gambar screenshot yang kita tangkap sebelumnya
while exist(): sleep (5) Popup ("vgod sedang log off")
Script ini sangat mirip dengan yang dalam latihan sebelumnya. Satu-satunya perbedaan adalah penghapusan operator "not" dari pernyataan kondisi while loop, karena kita berusaha untuk melakukan yang sebaliknya.
Cara lain untuk menunggu hilangnya gambar adalah dengan menggunakan fungsi waitVanish(). Script di atas dapat ditulis sebagai berikut:
waitVanish(,FOREFER) Popup("vgod sedang log off")
Bus Kedatangan Notifier
Latihan ketiga adalah untuk membangun sebuah alat pemberitahuan kedatangan bus. Bagi banyak penumpang bus, layanan pelacakan online berbasis GPS sangat berguna. Daripada harus sabar berdiri di halte bus, menantang angin dingin di musim dingin atau terik matahari di musim panas, calon penumpang bus dapat duduk dengan nyaman di dalam di depan komputer mereka, memeriksa email, memperbarui status Facebook, atau menonton YouTube? video, atau apa pun. Mereka hanya perlu melihat peta setiap beberapa saat untuk memeriksa lokasi simbol bus di peta. Hanya ketika posisi bus sudah cukup dekat, mereka akhirnya harus keluar dan berjalan ke bus.Karena kita peduli apakah bus semakin dekat untuk berhenti, kita hanya perlu melihat lingkungan sekitar posisi bus berhenti. Dengan demikian, kita dapat mengubah ukuran browser seperlunya saja untuk yang menunjukkan sebagian peta sekitar saja, sementara dilain pihak kita memiliki banyak ruang layar untuk melakukan sesuatu yang lain, dalam hal ini, membaca berita CNN atau lainnya :).
Mari kita menulis Script Sikuli untuk melakukan pelacakan posisi bus bagi kita. Hal ini dimungkinkan untuk mendefinisikan suatu "region" (daerah di layar) dan meminta Script Sikuli untuk fokus hanya pada daerah itu untuk mencari pola visual tertentu. Dengan cara ini, Sikuli tidak perlu membuang siklus komputasi berharga pemindaian seluruh layar. Untuk melakukannya, mari kita klik pada tombol "select a region" di toolbar seperti yang ditunjukkan di bawah ini.
Seluruh layar akan membeku dan berubah gelap, mirip dengan apa yang terjadi dalam modus screen capture. Cukup menggambar persegi panjang untuk menutupi peta seluruh lingkungan. Wilayah yang tercakup oleh persegi panjang ini secara visual direpresentasikan sebagai gambar thumbnail dari seluruh desktop di mana wilayah adalah daerah berbayang / berwarna merah.
Selanjutnya, kita menangkap gambar screenshot dari simbol bus sehingga kita dapat memberitahu Script Sikuli untuk memantai tampilan tersebut.
Sekarang. kita dapat menulis script berikut untuk memeriksa peta dan memantau munculnya simbol bus:
while not .inside().exist(): sleep(5) popup("bus telah tiba")
Tafsirkan makna dari while loop secara langsung adalah
Sementara tidak simbol bus dapat ditemukan di dalam kawasan, tidur selama 5 detik. Dengan kata lain, loop sementara akan keluar hanya ketika simbol bus ditemukan di dalam wilayah tersebut. Kemudian, pernyataan popup akan dieksekusi untuk memberitahu kami bus telah tiba.
Sekali lagi, efek yang sama bisa kita dapatkan dengan menggunakan wait() . Script dapat ditulis kembali sebagai:
.inside().wait(, FOREFER) Popup("bus telah tiba")
OK selamat mencoba ... selamat mengeksplorasi kemampuan Sikuli :)
Tidak ada komentar:
Posting Komentar