Dalam tantangan ini, Anda akan menghitung seperti apa reputasi Anda, jika batas reputasi tidak ada di PPCG.
Setiap orang dapat mengakses data mentah untuk perubahan reputasi pada alamat: codegolf.stackexchange.com/reputation . Data mentah mengikuti pengaturan seperti ini (ini adalah beberapa baris pertama dari versi halaman saya.
total votes: 2955
-- bonuses (100)
2 37663 (10)
-- 2014-09-11 rep +110 = 111
2 41751 (10)
-- 2014-11-23 rep +10 = 121
2 41751 (10)
2 41751 (10)
-- 2014-11-24 rep +20 = 141
Baris pertama tidak relevan untuk tantangan ini (ini menunjukkan jumlah total suara yang Anda terima pada semua jawaban dan pertanyaan Anda). Baris kedua menunjukkan "bonus Asosiasi". Jika Anda tidak memiliki bonus maka garis itu tidak akan ada sama sekali.
Setelah dua baris (atau satu, jika tidak ada bonus) ini, Anda akan memiliki daftar perubahan reputasi per pertanyaan, bersama dengan ringkasan dari semua perwakilan yang diperoleh / hilang pada setiap hari. Anda juga akan mendapatkan daftar total reputasi yang Anda miliki di akhir hari itu. Hanya hari-hari ketika reputasi Anda berubah ditampilkan dalam daftar ini.
Ada pengidentifikasi di awal setiap baris (kecuali garis ringkasan harian). Ini mewakili kemungkinan alasan perubahan reputasi berikut:
1 : Accept (+2 if you accept, +15 if your answer is accepted)
2 : Upvote (+5 for question, +10 for answer)
3 : Downvote (-1 if you downvote answer, -2 if you get downvoted)
4 : Offensive (-100)
8 : Give bounty
9 : Receive bounty
12: Spam (-100)
16: Approved edit (+2)
Angka yang hilang ( 5,6,7,10,11,13,14,15
tidak memengaruhi reputasi).
Tantangan Anda adalah menghitung reputasi yang akan Anda miliki, jika bukan karena batasan reputasi.
Bagaimana Anda akan melakukan ini:
Simpan konten codegolf.stackexchange.com/reputation
sebagai teks biasa secara lokal, atau tempat lain yang Anda pilih (ini karena Anda harus masuk untuk mengakses informasi). Anda dapat mengambil data dari situs web secara langsung jika Anda mau, meskipun saya menganggap itu akan jauh lebih lama.
Ringkasnya semua perubahan reputasi positif dan negatif. Suara yang tidak menghasilkan perubahan reputasi (karena tutup rep) ditampilkan seperti ini (perhatikan tanda kurung, bukan tanda kurung biasa):
2 106125 [0]
2 106125 [0]
3 106125 [-2]
2 106088 [2]
2 106125 [0]
2 106088 [0]
Anda harus menyertakan perwakilan yang akan Anda terima jika bukan karena batasannya.
Jumlah posting 106125
adalah pertanyaan , sedangkan 106088
adalah jawaban . Seperti yang Anda lihat, tidak ada cara untuk membedakan antara keduanya hanya menggunakan data yang diberikan dalam tabel. Karena itu Anda harus mengakses situs web ( codegolf.stackexchange.com
) untuk memeriksa apakah suatu posting adalah pertanyaan atau jawaban. Anda juga dapat menggunakan API untuk ini.
Aturan:
- Setiap orang harus dapat menjalankan skrip Anda sehingga:
- Anda harus memasukkan semua jenis perubahan reputasi yang berbeda, bahkan jika Anda belum menemukannya sendiri.
- Kode harus bekerja bahkan jika Anda belum menerima bonus Asosiasi (garis tidak akan ada jika Anda belum)
- Anda dapat menggunakan bahasa yang tidak bebas (Mathematica, MATLAB dll.), Selama orang lain dengan lisensi dapat menjalankan kode.
- Anda tidak harus memberikan data mentah, karena semua orang dapat menguji kode Anda pada versi halaman mereka sendiri (akan menarik jika Anda membagikan hasilnya, tetapi itu opsional).
- Anda dapat menggunakan API atau mengakses situs web secara langsung. penyingkat url tidak diizinkan.
- Jika ada cara lain untuk menemukan rep Anda akan memiliki tanpa topi rep maka Anda tidak dapat menggunakannya. Anda harus menggunakan data dari halaman yang disebutkan.
Perhatikan bahwa postingan yang merupakan jawaban mendapatkan ekstensi berbeda ke url:
/codegolf/106088 // Answer: Notice the end of the url
/codegolf/106079/detect-ms-windows/106088#106088
/codegolf/106079/ // Question: Notice the end of the url
/codegolf/106079/detect-ms-windows
Keluaran:
Outputnya harus:
Rep w cap: 15440
Rep w/o cap: 16202
Formatnya opsional, [15440,16202]
diterima. Rep w cap
dapat diambil langsung dari baris: ** total rep 15440 :)
dekat bagian bawah halaman.
Ini adalah kode-golf sehingga kode terpendek dalam byte menang.
sumber
Jawaban:
Perl 5 (dengan curl), 209 +1 (flag -n) = 210 byte
Menyalahgunakan fakta bahwa url untuk jawaban ada
#
di dalamnya. Dapat menambahkan-s
bendera setelahcurl
jika Anda tidak suka stderr dibanjiri dengan progress bar. Saya akan menghargai seseorang dengan halaman reputasi yang lebih beragam dan mengujinya- Saya tidak yakin saya tidak melewatkan apa pun.Tambang 421 dan akan menjadi 451, omong-omong.
sumber
perl -nE 'code' < filename
. Anda mungkin harus melakukan beberapa kutipan dan pelarian yang berbeda pada Windows, saya tidak terlalu mengenal lingkungan di sana.https://
jika Anda-L
mengibarkan bendera ke ikal, memungkinkannya untuk mengikuti pengalihan 301/codegolf//a/$2
bukan halaman itu sendiri.Search pattern not terminated at -e line 1.
ketika saya mencoba ini. Saya cukup menempelkan seluruh kode menggunakan apa yang Anda tulis di komentar (perl -nE ..
), sambil menyimpan file di direktori kerja saat ini. Adakah yang tahu mengapa itu terjadi?