xkcdを表示する



Display An Xkcd



Perl + curl + feh、86 8475バイト

`curl xkcd.com/$_/`=~/

が必要です

-pスイッチ。私はこれをバイトカウントで説明しました。PowerShell v3 + 11099107103バイト


iwr($ x =((iwr'xkcd.com / $ args ')。images |?{$ _。title |))。src.Trim(' / ')-outf x.jpg; if($ x){ ii x.jpg; $ x.title}

インライン割り当てを使用して一部のバイトを節約するのを手伝ってくれたTimmyに感謝します。

引数が渡されない場合は、

$ argsはnullであり、現在のコミックを取得するだけです。画像を代替テキストと照合して、スクリプトの現在実行中のディレクトリ内のファイルにダウンロードします。次に、jpgのデフォルトのビューアで表示します。その後、代替テキストがコンソールに表示されます。iwrはのエイリアスです呼び出す-WebRequest渡された数(またはその問題に関する無効な入力)が一致しない場合、プロセスは少なくとも404エラーで失敗します。

iwr(#XKCDからコミック画像をリクエスト$ x =((iwr'xkcd.com / $ args ')。images |#現在の画像または渡された引数に一致する画像を見つけるためのプライマリ検索#{$_。title} ))#altテキストで画像を検索します。.src.Trim( '/')#リンクに関連付けられた画像を使用し、先頭のスラッシュを削除します-outf x.jpg#スクリプトが実行された場所のローカルディレクトリに画像を出力しますif( $ x){#画像の取得が成功したかどうかをテストしますii x.jpg#デフォルトのjpgビューアで画像を開きます$ x.title#コンソールに代替テキストを表示します}#私は閉じ括弧です。

AutoIt、440バイト 

はい、長いですが、安定しています。

#include #include Func _($ 0 = '')_ GDIPlus_Startup()$ 1 = _IECreate( 'xkcd.com /'&$ 0)For $ 3 In $ 1.document.images ExitLoop $ 3.title '' Next $ 4 = _GDIPlus_BitmapCreateFromMemory(InetRead($ 3 .src)、1)$ 6 = _GDIPlus_ImageGetDimension(_GDIPlus_BitmapCreateFromHBITMAP($ 4))GUICreate(ToolTip($ 3.title)、$ 6 [0]、$ 6 [1])GUICtrlSendMsg(GUICtrlCreatePic( ''、0,0、$ 6 [0]、 $ 6 [1])、370,0、$ 4)_IEQuit($ 1)GUISetState()GUIGetMsg()=-3EndFuncまで実行

まず第一に、これはサイトをスクレイピングするために正規表現を使用しません(すべての漫画でこれをテストする時間がないため)が、むしろInternet ExplorerAPIを使用してDOMを反復処理します

タイトルテキストのあるものが見つかるまで、imgタグを付けます。バイナリストリームは画像のURLから読み取られ、GDIPlusを使用してビットマップにレンダリングされます。次に、これは実際のツールチップを備えた自動サイズのGUIに表示され、Webサイトとほぼ同じように動作します。

これがテストケースです(

_(859)):