1

[[File:...]]ウィキメディア マークアップのタグまたはインフォボックス|image=...行を指定して、ウィキペディアが記事内の画像の完全な URL を生成するために使用するロジックは何ですか?

URL は常に で始まりhttp://upload.wikimedia.org/wikipedia/commons/、その後に予測できないように見える 2 つの URL セグメントと、タグから予測できる画像名が続きます。

例えば、

[[File:Michael Jordan UNC Jersey cropped.jpg|thumb|left|Michael Jordan's jersey in the rafters of The [[Dean Smith Center]]]]

収量:

http://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Michael_Jordan_UNC_Jersey_cropped.jpg/220px-Michael_Jordan_UNC_Jersey_cropped.jpg

URLの一部をプログラムで判断する方法はあり/6/6aますか、それともWikipediaサーバーでのルックアップですか?

インフォボックスの別の例:

|image = Jordan Lipofsky.jpg

収量:

http://upload.wikimedia.org/wikipedia/commons/b/b3/Jordan_Lipofsky.jpg

/b/b3URL の一部を予測できますか?

ありがとう!

4

1 に答える 1

2

MD5 ハッシュから生成されていることがわかります。以下の Scala のようなものは機能しますが、それが /commons にあるのか /en にあるのかを予測する方法はわかりません。

import org.apache.commons.codec.digest.DigestUtils
def getImageUrl(fileName: String, rootUrl: String): String = {

    val messageDigest = DigestUtils.md5Hex(fileName.replace(" ", "_"))
    val md5 = messageDigest

    val hash1 = md5.substring(0, 1)
    val hash2 = md5.substring(0, 2)

    rootUrl + hash1 + "/" + hash2 + "/" + fileName

}

ここで説明されているように、先行ゼロに注意してください。

ウィキペディアは、画像パスのハッシュ部分を計算するためにさまざまな方法を使用していますか?

http://lists.wikimedia.org/pipermail/mediawiki-api/2011-December/thread.html#2446

于 2012-11-30T22:26:46.120 に答える