2012-11-30 5 views
1

위키 피 디아는 위키 미디어 마크 업에서 [[File:...]] 태그 또는 infobox |image=... 라인을 사용하여 기사의 이미지에 대한 전체 URL을 생성하는 데 어떤 논리를 사용합니까?위키 백과 [[File : ...]] 태그에서 전체 URL을 구성하는 방법은 wikimedia 마크 업에서?

URL은 항상 http://upload.wikimedia.org/wikipedia/commons/으로 시작하여 예상 할 수없는 두 개의 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 부분을 결정하는 방법이 있나요, 또는 이것은 위키 백과 서버에서 조회입니까? 인포 박스에서

또 다른 예 :

|image = Jordan Lipofsky.jpg 

수율 :

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

이 URL의 /b/b3 부분이

를 예상 할 수 있습니까?

감사합니다.

+1

을, 프로그램 어디에서? 외부 애플리케이션? MediaWiki 확장? Wikipedia에서 실행되는 JavaScript 스크립트? – svick

+0

위키피디아의 소프트웨어는 [MediaWiki] (https://mediawiki.org/)라고 불립니다. ['$ wgHashedUploadDirectory'] (https://www.mediawiki.org/wiki/Manual:$wgHashedUploadDirectory)라는 구성 변수가 있습니다.이 변수는 업로드가 가능한 Wikimedia Wiki에서 true로 설정됩니다. –

답변

1

MD5 해시에서 생성되었습니다. 스칼라에서 아래처럼 뭔가를 할 수 있습니다 - 비록 그것이/commons 또는 in/en에 있는지 예측하는 방법을 모르겠지만. 로, 앞의 0에 대한주의

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 

} 

는 여기에 설명 :

Does wikipedia use different methods to compute the hash part of an image path?

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

+1

#wikimedia IRC에서 이미지가/commons 또는/en에 있는지 예측할 수 없다는 소식을 들었으므로 API를 요청하거나 추측하고 확인해야합니다. – mrjf