あなたが抵抗できない10のクリックベイト


8

1から10までの自然数iを入力として受け取り、コードゴルフポータルでi番目に人気のある質問を含む質問のURLを出力するプログラム/関数/スクリプトを記述します。

順序はhttps://codegolf.stackexchange.com/?tab=hotのようにする必要があります。例:
入力1
出力/codegolf/127047/the-spain-license-plates-game
(この編集の時点で)

URLが合理的に取得できる限り、出力に強い制限はありません。有効な出力には、文字列、コンソール印刷などがあります。

それはコードゴルフなので、バイトで最も短いコードが勝ちます。

ノート

プログラムがWebページを含むブラウザーを自動的に開く場合、それは有効な出力としてカウントされ、完全にクールです。

プログラムが現在の情報からランキングを取得しない(つまり、リンクをハードコーディングする)場合、そのランキングは無効です。

コンテストは6月末に終了します。

質問:インデックスは1ベースでなければなりません。つまり、入力1は、最もホットな質問の最初のサイトを返す必要があります。

コメント

スタック交換エディタープログラムがタイトルをあざけっていたので、この質問があまりクリックベイトにならないことを願っています。もともと私は、Youtubeのトレンドを使ってこのチャレンジを計画しましたが、よりフィッティングはしませんでした。


1
Re:Stack Exchangeは、質問のタイトルをあざけって、you具体的には単語をトリガーしているだけです。ソフトウェアが想定していることは、人々が何かについて具体的に何を考えているのかを尋ねている場合、質問はおそらく主に意見に基づいて閉じられることになります(質問が事実に基づいているかのように、それは問題ではないでしょう)あなたが尋ねた人)。もちろん、この単純なヒューリスティックには多くの誤検知があります。

回答にURLの短縮形が使用されていないことに驚いています。v.ht
Engineer Toast

@EngineerToast通常は許可されません。
Esolanging Fruit

@ Challenger5 確かに。私はおそらくそのリスト
エンジニアトースト

回答:


1

PowerShell v5、83バイト

(irm api.stackexchange.com/questions?sort=hot`&site=codegolf).Items["$args"-1].Link

irmInvoke-RestMethodJsonを自動解析するための短縮形であり、非常に使いやすくなっています。

ブラウザで開くバージョンに4バイト(sapsstart-process)を追加します。

saps(irm api.stackexchange.com/questions?sort=hot`&site=codegolf).Items["$args"-1].Link

4

Python + リクエスト、128バイト

from requests import*
lambda n:get('http://api.stackexchange.com/questions?sort=hot&site=codegolf').json()['items'][n-1]['link']

3

Mathematica、125バイト

b="http://codegolf.stackexchange.com";b<>"/q/"<>StringCases[Import[b<>"?tab=hot","Text"],"ns/"~~a:DigitCharacter..:>a][[3#]]&

匿名関数。入力をとらず、文字列を出力として返します。XMLフィードを使用する予定でしたが、ページとは異なる順序で表示されているようです。


3

Python 2.7、195バイト

from urllib import*
import zlib, json
lambda n:json.loads(zlib.decompress(urlopen('http://api.stackexchange.com/questions?sort=hot&site=codegolf').read(),16+zlib.MAX_WBITS))['items'][n-1]['link']

これはDairによる回答と同じですが、Python 2を使用しています


1
PPCGへようこそ!
マーティンエンダー2017年

3

Python 3、221バイト

from urllib.request import*
import zlib, json
lambda n:json.loads(zlib.decompress(urlopen('http://api.stackexchange.com/questions?sort=hot&site=codegolf').read(),16+zlib.MAX_WBITS),encoding='utf-8')['items'][n-1]['link']

ovsの回答に基づいています。また、私が抱えていた問題を解決してくれたOluwafemi Suleに感謝します。


回答を編集して、それがPython 3であることを言及できますか?ありがとう!:-)
Mauro Baraldi 2017年

2
@MauroBaraldi編集。申し訳ありません。
Dair

2

Stratos、28バイト

"-1"+
f"¹⁵s²&sort=hot"r"⁷s"@

説明:

"-1"+                    Decrement the input, and store it.
f"¹⁵s²&sort=hot"         Fetch the contents of the URL api.stackexchange.com/questions?site=codegolf&sort=hot.
                r"⁷s"    Get the array named "items"
                     @   Get the nth element, where n is retrieved from storage.

それを試してみてください!


1

JavaScript(ES6)、106バイト

リンクを含む、目的の質問のJSONオブジェクトを含むPromiseを返します。

n=>fetch`//api.stackexchange.com/questions?sort=hot&site=codegolf`.then(r=>r.json()).then(j=>j.items[--n])
  • 1バイトのインデックス作成を可能にするために2バイトを犠牲にしました。

それを試してみてください

f=
n=>fetch`//api.stackexchange.com/questions?sort=hot&site=codegolf`.then(r=>r.json()).then(j=>j.items[--n])
oninput=_=>f(+i.value).then(console.log)
f(i.value=1).then(console.log)
<input id=i type=number>


現時点では0ベースのインデックスの処理方法がわかりませんが、他の回答は1ベースのインデックスを使用しているように見え、そのように指定されているため、回答は106バイトとしてカウントされます(現在のトップスコア)
Moartem

@Moartem:「現時点では0ベースのインデックス付けの処理方法がわからない」-理解できたらお知らせください。回答を適宜更新します。1インデックスまたは0インデックスを許可することをお勧めします。
Shaggy

1インデックスに修正しますので、すべて同じ前例がありますので、回答を更新してください。とにかくこれを指摘してくれてありがとう。
Moartem '19 / 06/19

@Moartem:回答が更新されました。今後の参考のために、正当な理由がない限り、ソリューションが言語のデフォルトのインデックスを使用できるようにするのが標準です。
Shaggy
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.