担当者がいなければ、あなたの評判はどうでしょうか?


16

この課題では、PPCGにレピュテーションキャップが存在しなかった場合のレピュテーションを計算します。

アドレスはcodegolf.stackexchange.com/reputationで評価の変更のために誰でもrawdataにアクセスできます。生データは、このような設定に従います(これらは、私のバージョンのページの最初の数行です。

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       

最初の行は、このチャレンジとは無関係です(すべての回答と質問に対して受け取った投票の総数を示します)。2行目は「関連付けボーナス」を示しています。ボーナスがない場合、その行はまったくありません。

これらの2行(またはボーナスがない場合は1行)の後に、質問ごとの評判の変更のリストと、毎日獲得または失ったすべての担当者の概要が表示されます。また、その日の終わりにあなたが持っている合計評価のリストを取得します。このリストには、評判が変わった日のみが表示されます。

各行の先頭に識別子があります(毎日の要約行を除く)。これらは、次の潜在的な評判変更の理由を表しています。

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)

欠落している数字(5,6,7,10,11,13,14,15評判に影響を与えません)。


あなたの挑戦は、評判のキャップがなければ、あなたが持つ評判を計算することです。


これを行う方法:

の内容を保存 codegolf.stackexchange.com/reputationプレーンテキストとして、または選択した他の場所にローカルに(これは、情報にアクセスするためにログインする必要があるためです)。必要に応じて、Webサイトから直接データを取得できますが、もっと長くなると思います。

すべての肯定的および否定的な評判の変化を要約します。評判の変化をもたらさない(担当者キャップによる)投票は、次のように表示されます(通常の括弧ではなく、角括弧に注意してください)。

 2    106125 [0]
 2    106125 [0]
 3    106125 [-2]
 2    106088 [2]
 2    106125 [0]
 2    106088 [0]

キャップがなかった場合は、受け取った担当者を含める必要があります。

郵便番号は、106125ある疑問ながら、106088ある答え。ご覧のとおり、表に記載されているデータのみを使用して2つの違いを区別する方法はありません。したがって、Webサイト(codegolf.stackexchange.com)にアクセスして、投稿が質問か回答かを確認する必要があります。このためにAPIを使用することもできます。


ルール:

  • 誰でもスクリプトを実行できる必要があります。
    • 自分自身で遭遇していなくても、すべての異なるレピュテーション変更タイプを含める必要があります。
    • アソシエーションボーナスを受け取っていない場合でも、コードは機能する必要があります(受け取っていない場合、行は表示されません)
    • ライセンスを持つ他の人がコードを実行できる限り、非フリー言語(Mathematica、MATLABなど)を使用できます。
    • 誰もが自分のバージョンのページでコードをテストできるため、生データを提供する必要はありません(結果を共有することは興味深いですが、それはオプションです)。
  • APIを使用するか、Webサイトに直接アクセスできます。url-shortenersは許可されていません。
  • 担当者キャップなしで持っている担当者を見つける他の方法がある場合、それを使用することはできません。上記のページのデータを使用する必要があります。

回答である投稿は、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

出力:

出力は次のようになります。

Rep w cap: 15440
Rep w/o cap: 16202

形式はオプションで、[15440,16202]受け入れられます。Rep w cap行から直接取得できます:** total rep 15440 :)ページの下部近く。


これはため、バイト単位の最短コードが優先されます。



4
751.私と私の人生をリッピング
クリストファー

2
笑これまでにrepcapを使ったことがありません。
ハイパーニュートリノ

明確にするために、キャップの評判は総代理店の合計であり、評判は角括弧内で変化しますか?
グラビトン

回答:


3

Perl 5(カール付き)、209 + 1(-nフラグ)= 210バイト

if(/([0-9]+)\s*([0-9]+) \[([0-9]*)/){$_=`curl /codegolf//a/$2`;@p=(2,5,-1);$p[15]=2;@s=(13,5,-1);$x=$1;$r+=($p[--$x]//-100)-$3;$r+=$s[$x]if/#/;};$t=$1 if/([0-9]+) :/;END{say$t,$",$r+$t}

回答のURLに含まれているという事実を悪用#します。-s後にフラグを追加できますcurlstderrにプログレスバーが殺到するのが気に入らない場合。それをテストするより多様な評判のページを持っている人に感謝します-私は何も見逃していないことを確信することはできません。

ちなみに私の鉱山は421で、451です。


Perlを使用したことがないので、どこからrawdataを取得したかわかりません。これをテストしたい場合、rawdataはどこに置きますか?注:Windows 10でStrawberryを使用しています。UnixやOS Xがありません。これをどのように呼び出すのですか?
スティーヴィーグリフィン

@Stewie Griffin stdinから生データを読み取ります。コードは1行であり、などのように実行する必要がありますperl -nE 'code' < filename。Windowsで何かを引用したりエスケープしたりする必要があるかもしれませんが、私はそこでの環境にあまり詳しくありません。
クリス

小さな最適化:フラグをcurlにhttps://渡すと削除でき-L、301リダイレクトに従うことができます
-markasoftware

@Markasoftwareただし、実際のページへの複数のリダイレクトに従いますか?そのまま、私のコードは/codegolf//a/$2ページ自体ではなく、301リダイレクトを解析します。
クリス

Search pattern not terminated at -e line 1.これを試すと手に入ります。perl -nE ..現在の作業ディレクトリにファイルを保存しながら、コメント()に記述した内容を使用してコード全体を貼り付けるだけです。なぜそうなるのでしょうか?
スティーヴィーグリフィン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.