Wwwishlist adalah ekstensi krom yang dapat menyimpan keinginan dari situs web mana pun di web ke penyimpanan lokal browser Chrome. Data Anda tetap sepenuhnya pribadi karena itu.
Ekstensi saat ini dirilis tidak terdaftar dan akan menjadi publik sepenuhnya setelah teman saya mengujinya selama 1-2 bulan.
Untuk deskripsi yang lebih rinci, lihat StorePage Chrome.
Di bawah ini Anda akan menemukan gambaran singkat tentang pekerjaan dalam, apa yang direncanakan dan jika Anda ingin menjadi kontributor, beberapa dokumen dan hal -hal lisensi.
Jantung Wwwishlists adalah popup (HTML, controller dan view) bersama -sama dengan scraper.
Scraper menyuntikkan kode ke situs web dari mana popup dibuka untuk mengembalikan gambar. Saya mencoba meraih harga tetapi saya dengan cepat mengetahui bahwa harganya seringkali tidak lebih dari bidang teks (atau beberapa). Gambar sedikit difilter untuk menghapus gambar yang pasti bukan gambar produk. Saya telah memutuskan untuk tidak menyuntikkan ini ke setiap iframe di halaman karena saya mengalami masalah di situs web Amazon.de. Jika Anda tahu mengapa masalah itu ada, tolong buat hari saya dan beri tahu saya. Setelah pengguna memasukkan semua data dan menyimpan, gambar yang dipilih dicat ke kanvas menyusut ke 200x200 piksel dan dikonversi ke data base64 karena API ekstensi chrome hanya memungkinkan satu file JSON besar untuk penyimpanan lokal. Jika proses ini mengalami masalah CORS, URL gambar disimpan sebagai gantinya.
Saya tidak merencanakan pembaruan fitur besar. Saya sangat tertarik dengan situs web mana pun di mana ekstensi saya gagal tampil. Hal berikutnya yang mungkin saya tulis adalah tes unit yang tepat untuk fungsi tersebut. Saya melakukan tes saat membuat semuanya bekerja dan menyesal tidak mengotomatiskan tes semu yang saya tulis selama periode itu. Saya benar -benar ingin penghematan harga/mata uang yang lebih baik (sekarang ini hanya string), tetapi untuk senang dengan itu saya ingin menggunakannya, artinya saya mungkin ingin kemampuan menambahkan semua item pada daftar wish hingga satu total (untuk wishlist proyek). Dan untuk itu saya perlu memanggil API konverter mata uang. Fitur besar lainnya yang saya lewatkan adalah cara mudah untuk berbagi yang tidak melibatkan saya menjalankan server.
Jika Anda ingin mengerjakan fitur baru, silakan angkat masalah GitHub, saya ingin bekerja dengan Anda untuk akhirnya menyetujui permintaan tarik Anda. Jika Anda hanya ingin melakukan perbaikan bug atau memperbarui permintaan tarik dokumen sangat disambut. Jika Anda ingin membangun/membayar dari proyek ini: Seluruh proyek ini dirilis di bawah GPL 2. Saya memilih GNU untuk membuat kode tidak menarik untuk komersialisasi tanpa membatasi berbagi dan perubahan non-komersial. Jika Anda ingin membantu tetapi tidak tahu dengan apa, lihat di atas di bagian apa yang direncanakan.
Untuk mengatur proyek di mesin Anda, Anda memerlukan NPM 10.5 atau lebih baru. Setelah Anda menjalankan kode
npm install
Untuk menginstal dependensi Bulma dan node-sass yang ditentukan dalam package.json. Jika Anda ingin membuat file Bulma baru dari perubahan Sass Anda cukup jalankan
npm css-build
atau jika Anda ingin ini terjadi secara otomatis saat Anda sedang mengerjakan Sass Run
npm start
untuk membangun Bulma terus menerus.
Untuk menambahkan ekstensi chrome ini ke toko chrome Anda, klik ikon puzzle di kanan atas -> Kelola ekstensi -> Nyalakan mode pengembang -> Muat tanpa kemasan dan pilih folder World Wishlist di direktori Anda.
Dan dengan demikian Anda menginstal versi pengembang Anda.
API Penyimpanan Chrome jahat karena hanya memungkinkan Anda untuk menyimpan ke file .Json tunggal besar. File ini dapat diakses melalui alat dev, tetapi yang lebih penting di storageTemplate.json Anda dapat melihat struktur DB.
Penyimpanan hanya untuk diakses dari model dan penebusan data.
Saat ini saya tidak yakin orang akan ingin berkontribusi, jadi untuk saat ini saya tidak akan menjelaskan setiap fungsi, tetapi lebih dari struktur dari apa yang terjadi. Jika Anda benar -benar ingin melakukan itu, beri tahu saya dan saya akan dengan senang hati menjelaskan apa pun yang tidak Anda mengerti (dan tulis lebih banyak dokumen yang teliti).
Saya kebanyakan mengikuti pola MVC dalam kode. Untuk meringkas setiap halaman memiliki pengontrol dan tampilan, sementara setiap datapoint memiliki model. Setiap model bertanggung jawab atas tindakan CRUD (Buat Pembaruan Baca Pembaruan) miliknya. Setiap tampilan hanya menampilkan data ke atau mengambil data dari pengguna. Setiap pengontrol menunggu tindakan pengguna dan memanggil tampilan dan model untuk melakukan pekerjaan masing -masing. Versi dilakukan sesuai dengan Semantic Versioning 2.0.0
Untuk saat ini struktur program adalah sebagai berikut:
Pada instal atau perbarui latar belakang.MJS memanggil dbManager.mjs untuk mengatur database. Selain itu, latar belakang.MJS membuat entri menu konteks terjadi yang hidup di menu ikon ekstensi klik kanan.
Dipanggil dari latar belakang. Jika Anda ingin mengubah fungsionalitas struktur DB, migrasi pada pembaruan juga akan terjadi di sini.
Di sini semua batas (nilai min dan maks) untuk nilai basis data secara langsung.
Ekstensi menggunakan UUID V7 yang berarti ID dimulai dengan cap waktu UNIX dan berlanjut dengan nomor acak. Ini penting untuk data impor dengan benar (yaitu data unik sebenarnya unik).
Anda dapat menebaknya, file ini mengatur cara mengimpor dan mengekspor data. Itulah alasan ekstensi ini menggunakan izin unduhan. Akses pengguna fungsionalitas itu hanya dari halaman Pengaturan.
File -file ini adalah kelas yang menangani operasi CRUD pada objek Wish and Wishlist.
Pengaturan Controller.mjs sekarang hanya benar -benar berfungsi untuk memanggil fungsionalitas impor ekspor (ditambah tautan tombol). Saat ini tidak ada pengaturan tetapi mungkin Anda bisa mengubahnya!
Pengguna berinteraksi dengan mywishlist.html melalui 2 file ini. Mengedit, menghapus, membatalkan penghapusan, mengharukan keinginan, membuat daftar keinginan semuanya terjadi di sini.
Jika popup diklik, pengontrol memanggil scraper.mjs dan dengan data scraper mengambil tampilan kemudian mengisi popup sehingga pengguna dapat memutuskan gambar mana yang akan disimpan dan info apa yang akan ditambahkan. Setelah pengguna melakukan bahwa tampilan mendapatkan data itu, mengubah gambar yang sesuai menjadi Base64 dan merespons kembali ke pengontrol untuk disimpan.
Scraper menyuntikkan kode ke situs web dari mana popup dibuka untuk mengembalikan gambar. Saya mencoba meraih harga tetapi saya dengan cepat mengetahui bahwa harganya seringkali tidak lebih dari bidang teks (atau beberapa). Gambar sedikit difilter untuk menghapus gambar yang pasti bukan gambar produk. Saya telah memutuskan untuk tidak menyuntikkan ini ke setiap iframe di halaman karena saya mengalami masalah di situs web Amazon.de. Jika Anda tahu mengapa masalah itu ada, tolong buat hari saya dan beri tahu saya.
Terima kasih kepada Kjeld Schmidt karena telah menjadi mentor yang konstan dan guru yang sabar di seluruh proyek ini. Tanpa bimbingan Anda, saya bahkan tidak akan mulai mengkode.
Terima kasih kepada Huddel karena telah memberi saya buaya yang luar biasa-tidak ditemukan.
Terima kasih kepada semua teman saya yang lain, keluarga, dan orang asing internet untuk membantu pengujian.
Terima kasih kepada Jason Thor Hall untuk membangun komunitas programmer yang luar biasa dan atas izinnya untuk menggunakan toko merchanya sebagai bahan screenshot tutorial saya.