Giter Club home page Giter Club logo

atklite's People

Contributors

matematikaadit avatar

Stargazers

 avatar

Watchers

 avatar  avatar

atklite's Issues

Tanggal Gak Sama

Tanggal yang di bagian today dan tanggal di item gak sama. Buat keduanya sama.

  1. Buang imbuhan st, nd, dan rd di item atau
  2. Tambah imbuhan st, nd, dan rd di today

Encoding Problem.

Just compare this two images.
See what's wrong...

http://atklite.herokuapp.com
magika-bugs

http://www.animetake.com
magika-asli

Yes, that's sure are encoding problem.
Maybe I must read The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!).

Will fix it this night. ๐Ÿ’จ (I hope)

Anyway, let's see what curl said in these two address:

$ curl --silent -I http://atklite.herokuapp.com | grep Content-Type
Content-Type: text/html; charset=utf-8
$ curl -I http://www.animetake.com | grep Content-Type
Content-Type: text/html; charset=UTF-8

What?!! They both have UTF-8 encoding...
so, it must be in the scraping process. Time to debug...

Beri Tanggal posting pada List Item

Contoh Penerapan:

  1. Oshiri Kajiri Mushi 2 Episode 7 (Monday November 11th, 2013)
  2. Yozakura Quartet: Hana no Uta Episode 6 (Monday November 11th, 2013)
  3. Doki Doki! Precure Episode 39 (Monday November 11th, 2013)
  4. Super Seisyun Brothers Episode 9 (Monday November 11th, 2013)
  5. Phi Brain: Kami no Puzzle 3 Episode 6 (Sunday November 10th, 2013)
  6. Gingitsune Episode 6 (Sunday November 10th, 2013)
  7. Walkure Romanze Episode 6 (Sunday November 10th, 2013)

Alasan: Biar tahu hari apa item tersebut muncul pertama kali di halaman utama (sama seperti di website aslinya).

Berbenah di README

$ heroku login
Enter your Heroku credentials.
Email: [email protected]
Password:
Could not find an existing public key.
Would you like to generate one? [Yn]
Generating new SSH public key.
Uploading ssh public key /Users/kenneth/.ssh/id_rsa.pub

Ganti [email protected] dengan contoh lain, sertakan juga keterangan pada pembaca untuk mengganti email tersebut dengan email mereka.

Setelah itu buat virtualenv baru, aktifkan virtualenv tersebut, dan install semua requirements dengan pip.

Terlalu banyak setelah itu. Paka kata yang lain. Selain itu ada yang janggal ketika membaca bagian tersebut. Perbaiki.

Jika sukses, maka kalian bisa menjalankan perintah berikut:

$ python atklite.py

Jangan lupa untuk memberikan alamat URL untuk dikunjungi pembaca. Plus berikan keterangan untuk mematikan proses jika akan mengeksekusi program yang lain.

Terakhir, jangan lupa berikan keterangan bagaimana mematikan virtualenv.

Manfaatkan Database + Cron-job untuk menyimpan data yang discrapping

Ketika klien meminta halaman index maupun item, modul utama akan memanggil modul scraper dan memintanya agar melakukan proses scrapping halaman http://www.animetake.com. Proses itu selalu dilakukan tiap kali ada request baru.

Hal ini tentunya tidak efisien, menghabiskan resources, dan mengakibatkan aplikasi jadi lambat (meskipun sebenarnya tidak kelihatan). Padahal tujuan utama dibikinnya atklite ini adalah agar akses informasi dari website http://www.animetake.com lebih ringan dan cepat.

Rencana awal, atklite sebenarnya inginnya dibuat cuma satu halaman. Jadi tidak perlu masuk ke halaman item segala. Tapi ternyata setelah dicoba, untuk melakukan scrapping 28+1 halaman di animetake membutuhkan waktu yang tidak sebentar. Itulah sebabnya diciptakan halaman item. Tujuannya agar mengurangi beban yang awalnya 28+1 halaman menjadi cuma 2 halaman saja. Sehingga scrapping jauh lebih ringan dari sebelumnya.

Agar atklite bisa jadi satu halaman, maka dibutuhkan alternatif lain proses scrapping. Solusi tersebut dapat dijabarkan dalam dua langkah:

Pertama, gunakan fasilitas database. Simpan hasil scrapping ke dalam database. Dan akses database ketika diperlukan.

Kedua, gunakan fasilitas queue atau cron-job-like process. Sendirikan scrapping, sehingga tidak lagi bergantung pada ada tidaknya request dari klien.

Detil dari dua solusi diatas akan dipikirkan di kemudian hari. Yang pasti dari dua langkah solusi diatas diharapkan nantinya atklite jadi lebih ringan dan cepat. Serta semoga cukup untuk jadi satu halaman saja.

NOTE: 28+1 halaman berasal dari 28 item ditambah 1 halaman index.

TODO:

  • Memanfaatkan Database
  • Memanfaatkan cron-job

Hilangkan duplication di template dengan memanfaatkan Template Inheritance pada Jinja2

Template yang sekarang dipakai masih banyak duplikasi. File templates/index.html dan templates/item.html punya bagian <head> yang sama. Style-nya pun sama.

Ganti style biar berlaku untuk kedua template juga jadi susah. Harus ubah satu-satu di kedua file tersebut. Hal ini melanggar aturan DRY (Don't Repeat Yourself). Sangat menyusahkan untuk project kecil ini.

Solusinya adalah dengan menggunakan Template Inheritance. Fasilitas yang diberikan oleh template engine Jinja2. Dengan membuat base template dan mendefinisikan index.html dan item.html sebagai child template dari base template tersebut, duplikasi akan bisa dikurangi.

Resources:
Template Designer Documentation

Buat Tampilan yang Lebih Indah

Tampilan AtkLite saat ini masih terlalu simpel dan datar.

Berikut screenshot halaman utama (diambil 11 Nov 2013 17:20)
tampilan-atklite-11-11-13-1720

Sedangkan ini screenshot halaman item (diambil 11 Nov 2013 17:23)
tampilan-item-atklite-11-11-13-1722

Proposal: gunakan tema yang indah dari halaman example text editor brackets.

Berikut tampilan halaman example tersebut:

bracket.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.