Http://i.imgur.com/ से यादृच्छिक चित्र प्राप्त करें


11

इमगुर लोगो

Imgur एक फ्री इमेज होस्टिंग सर्विस है। बहुत से लोग इसका उपयोग करते हैं। : यहाँ एक imgur लिंक का एक उदाहरण है http://i.imgur.com/T55muMD.png । एक प्रोग्राम लिखें जो लगातार यादृच्छिक (वैध) imgur लिंक को आउटपुट करता है। उदाहरण के लिए, यहाँ मेरे प्रोगाम के कुछ सैंपल आउटपुट हैं (नहीं दिखाया गया है क्योंकि इसमें कुछ ट्रिक्स हैं जिन्हें आपको खुद पता लगाना होगा):

http://i.imgur.com/uFmsA.png
http://i.imgur.com/FlpHS.png
http://i.imgur.com/eAbsZ.png
http://i.imgur.com/lEUsq.png
http://i.imgur.com/RuveH.png
http://i.imgur.com/BoEwB.png
http://i.imgur.com/HVFGQ.png
http://i.imgur.com/PZpMg.png
http://i.imgur.com/DezCY.png

सहायक संकेत:

  • जब imgur नया था, 5-अक्षर लिंक का उपयोग किया गया था।
  • जब imgur नया था, संख्याओं का उपयोग नहीं किया गया था।
  • आप इसे अपने लाभ के लिए उपयोग कर सकते हैं: केवल अक्षरों के साथ 5-अक्षर लिंक छवियों को खोजें। यही मेरा कार्यक्रम करता है।
  • इसके अलावा, सभी छवियों के रूप में सहेजे जाते हैं .png

आवश्यकताएँ:

  • लगातार यादृच्छिक imgur लिंक उत्पादन
  • 50 "दोहराए" के साथ पर्याप्त रूप से आउटपुट होने पर लिंक को "यादृच्छिक" माना जाता है
  • जब दौरा किया, लिंक एक छवि होना चाहिए
  • लिंक के साथ शुरू http://i.imgur.com/और अंत होना चाहिए.png
  • स्कोर पात्रों की राशि है

मैंने इसे Java (गोल्फ के लिए TERRIBLE) में 452 वर्णों में किया था। यहाँ नहीं दिखाया गया है क्योंकि इसमें कुछ तरकीबें शामिल हैं जिन्हें आपको अपने लिए जानना होगा! ”


5
रुको, क्या आपकी परिभाषा यादृच्छिक है कि आउटपुट में दोहराव नहीं होना चाहिए?
श्री लिस्टर

7
चेतावनी: अश्लील चित्र imgur पर मौजूद हो सकते हैं! =: o
श्री। छिपकली

क्या सभी 5-अक्षर की छवि वैध है?
l4m2

जवाबों:


3

PHP 5.4, 76 वर्ण

URL केवल अनुक्रमिक अक्षरों का उपयोग करके अनुक्रमिक क्रम में उत्पन्न होते हैं और विनिर्देश के पत्र को पूरा करते हुए कभी नहीं दोहराते हैं।

<?for($t=@ZZZZ;$t++;)file($u="http://i.imgur.com/$t.png")[0]>@F&&print"$u
";

4

पर्ल (93 + 4 = 97)

अपनी छवि के URL प्राप्त करने के लिए imgur के अपने यादृच्छिक तंत्र का उपयोग करना , जो कि ज्यादातर समय URL नहीं होते हैं:

$ perl -Mojo -E 'say+g("http://imgur.com/gallery/random")->dom->at("[rel=image_src]")->attrs("href")for+1..50'
http://i.imgur.com/7cNoA.jpg
...

(इसके लिए आपको Mojolicious की आवश्यकता है ।)


1
यह शानदार है, और इसलिए उचित नहीं है!
एलसर

@ बेलसर यह सही है, कम से कम आपका दूसरा बिंदु। ;)
मेमोव

ओह, यह चालाक :) है
दरवाज़े

4

HTML (152)

<img src=x
onload=console.log(s);g()
onerror=g=function(){s='http://i.imgur.com/'+Math.random().toString(36).substr(2,6)+'.png';event.target.src=s};g()>

यह जावास्क्रिप्ट का उपयोग करते हुए सभी पाया छवियों पर लॉग करता है console.log()। सभी परीक्षण किए गए ब्राउज़रों (फ़ायरफ़ॉक्स, क्रोम, IE9, सफारी और ओपेरा) में काम करता है।

मज़े की बात यह है कि सभी तरह की मज़ेदार छवियां पलक झपकते ही चमक उठीं :)।

कोशिश करो! (jsFiddle ने इसे एक अधिक संपूर्ण HTML पृष्ठ में लपेट दिया है, लेकिन ब्राउज़र एकल तत्व को भी स्वीकार करते हैं।)

Doubletap द्वारा अद्भुत यादृच्छिक स्ट्रिंग विधि के लिए सहारा !

मैं जावास्क्रिप्ट कंसोल और लॉग इन छवियों को कहां देख सकता हूं?

  • फ़ायरफ़ॉक्स: प्रेस कंट्रोल-शिफ्ट-के (कमांड-ऑप्शन-के-मैक पर)। वहां नेट, सीएसएस और जेएस बटन को अचयनित करें, केवल लॉगिंग बटन का चयन करें।
  • Opera: नियंत्रण + Shift + i दबाएं, कंसोल टैब चुनें।
  • Chrome: नियंत्रण + Shift + i दबाएं, कंसोल टैब चुनें। तल पर, लॉग का चयन करें।
  • सफारी: मूल रूप से क्रोम की तरह, लेकिन पहले यह सुनिश्चित कर लें कि सफारी के डेवलपर टूल सक्रिय हैं । फिर Control + Shift + i के बजाय Control + Alt + C (विंडोज पर, मैक पर निश्चित नहीं) दबाएं, कंसोल टैब चुनें। तल पर, लॉग का चयन करें।
  • IE: F12 दबाएं, कंसोल टैब चुनें।

यह आवश्यकताओं को पूरा नहीं करता है। कई चित्र जो इसे पॉप अप करते हैं वे मान्य नहीं हैं।
दरवाज़े

"मान्य नहीं" से आपका क्या अभिप्राय है? कंसोल में, केवल वे छवियां जो सफलतापूर्वक प्रदर्शित हो सकती हैं, वे लॉग इन हैं (मेरा अद्यतन विवरण देखें)।
थॉमस डब्ल्यू।

ओह ठीक है। अब पुनः प्रयास कर रहा है। संपादित करें: लगता है कि क्रोम अमान्य छवियों को भी लॉग कर रहा है।
दरवाज़े

डिफ़ॉल्ट रूप से क्रोम त्रुटि संदेशों और लॉग को मिलाता है। कंसोल टैब के निचले भाग में आपके पास सभी, त्रुटियां, चेतावनी, लॉग हैं। यदि कोई चित्र लोड नहीं किया जा सका, तो यह छवि URL के साथ 404 त्रुटि प्रदर्शित करता है। यदि आप लॉग का चयन करते हैं, तो केवल मेरे कोड द्वारा उत्पन्न आउटपुट प्रदर्शित होना चाहिए।
थॉमस डब्ल्यू।

3
लॉग की गई बहुत सी छवि URL बस मानक imgur त्रुटि छवि लौटाती है जो कहती है कि "जिस छवि का आप अनुरोध कर रहे हैं वह मौजूद नहीं है या अब उपलब्ध नहीं है।" मैं एक बहस कर सकते है कि जो अभी भी नियमों के तहत मान्य परिणाम के रूप में दिया है, के बाद से लौट आए दस्तावेज़ लगता है एक छवि।
इल्मरी करोनें २०'१३

3

पर्ल (87)

perl -pe's/\W//g;$_="http://i.imgur.com/$_.png\n";$_=""if`curl $_`=~/^</'</dev/urandom

अपरकेस, लोअरकेस और अंकों के साथ 0 से किसी भी वर्ण, किसी दिन छवियां खोजना।



3

गणितज्ञ , १०hem

सफेद-स्थान जोड़ा गया।

While[True,
 Import@# /. _Image :> Print@# &[
  "http://i.imgur.com/" <> "a" ~CharacterRange~ "z" ~RandomChoice~ 5 <> ".png"
 ]
]

2

पायथन ( 174 158 156)

मुझे पाइथन में छोटे मॉड्यूल नाम चाहिए। यादृच्छिक अक्षर प्राप्त करने का एक आसान तरीका भी। :)

import urllib,random
while 1:a='http://i.imgur.com/%s.png'%''.join(chr(random.randint(65,90))for i in'AAAAA');print('File'not in urllib.urlopen(a).read())*a

स्पष्टीकरण:

एक स्ट्रिंग पर मापांक ऑपरेटर प्रारूपण कमांड है, इस स्थिति में यह 5 यादृच्छिक अपरकेस अक्षरों के साथ स्ट्रिंग में '% s' को बदल देता
aहै, वेबसाइट का नाम (प्रकार str)
('File'not in urllib.urlopen(a).read())'फाइल' ('फाइल नहीं मिला!') से सत्य है। है URL के एचटीएमएल में पाया। (प्रकार bool)
bool* str= strif bool= True, तो यह केवल आउटपुट होगा aयदि 'फ़ाइल' HTML कोड में नहीं पाया जाता है।


कल्पना का कौन सा हिस्सा कहता है कि आपको ऊपरी और निचले दोनों मामलों के पत्रों का उपयोग करना है? chr(random.randint(65,90))
पीटर टेलर

मैंने इसे चलाया और इसका कुछ भी उत्पादन नहीं हुआ। के साथ अच्छा चाल 'File'हालांकि :)
दरवाज़े

@PeterTaylor: :) मुझे नहीं पता था कि केवल बड़े अक्षरों के साथ imgur पर कोई लिंक थे, लेकिन मुझे लगता है कि यह काफी स्पष्ट होगा। धन्यवाद!
भालूयंक

@Doorknob: जब तक कोई लिंक नहीं मिलता है, तब तक यह एक नई लाइन आउटपुट करता है, फिर यह एक लिंक देगा।
beary605

1
लंबाई 5 का कोई भी क्रम आपके 5 यादृच्छिक वर्णों के लिए काम करेगा, इसलिए आप 'XXXXX'इसके बजाय कुछ का उपयोग करके कुछ वर्णों को बंद कर सकते हैं range(5)। इसके और इसके बीच व्हॉट्सएप की आवश्यकता न होने का भी फायदा है in
स्ट्राइगोइड्स

2

अद्वितीय पायथन दृष्टिकोण। ३६१ ३५५ ३३४ ३३२ ३२२ ३१४ वर्ण - थोड़ा ओछे, कुछ भी कठिन नहीं। बिल्ली के चित्रों के असामान्य रूप से उच्च घनत्व का परिणाम हो सकता है, आपको चेतावनी दी गई है।

import json as j,urllib as o,time as t;a=0
while 1:
 q="i.imgur";y,p=('data','children');r="njj";h="erqqvg.pbz/";u="uggc://"+h+"e/"+r;c=j.loads(o.urlopen(u.decode('rot13')+".json?sorted=new&after=%s"%a).read())[y]
 for s in c[p]:
  f=s[y];w=f['url'].strip('?1')
  if w.find(q)!=-1:print w
 a=c['after'];t.sleep(3)

आउटपुट:

http://i.imgur.com/u3vyMCW.jpg
http://i.imgur.com/zF7rPAf.jpg
http://i.imgur.com/aDTl7OM.jpg
http://i.imgur.com/KONVsYw.jpg
http://i.imgur.com/RVM2pYi.png
http://i.imgur.com/tkMhc9T.jpg
http://i.imgur.com/KxUrZkp.gif
http://i.imgur.com/mnDTovy.jpg
http://i.imgur.com/WpuXbHb.jpg
http://i.imgur.com/qZA3mCR.jpg
http://i.imgur.com/AxMS1Fs.png
http://i.imgur.com/TLSd571.jpg
http://i.imgur.com/VfMhLIQ.jpg
http://i.imgur.com/Wu32582.jpg
http://i.imgur.com/hrmQL2F.jpg
http://i.imgur.com/Clg8N.jpg
http://i.imgur.com/7Wsko.jpg
http://i.imgur.com/Rhb0UNx.jpg
http://i.imgur.com/LAXAf45.gif
http://i.imgur.com/jhOLJ9B.jpg
http://i.imgur.com/FQ9NeAl.jpg
http://i.imgur.com/oqzf6tE.jpg
http://i.imgur.com/rnpXs1A.jpg
http://i.imgur.com/DfUIz6k.jpg
http://i.imgur.com/orfGA5I.jpg
http://i.imgur.com/wBT7JNt.jpg
http://i.imgur.com/RycK1m2.jpg
http://i.imgur.com/7j21FIR.jpg
http://i.imgur.com/z2tVnNC.jpg
http://i.imgur.com/mnsAGuF.jpg
http://i.imgur.com/vIZM1NY.jpg
http://i.imgur.com/JT3XRI4.jpg
http://i.imgur.com/SNpwTmp.jpg
http://i.imgur.com/u9ynLb9.jpg
http://i.imgur.com/DrFWsBP.jpg
http://i.imgur.com/rU6oyup.jpg
http://i.imgur.com/XxBD5nl.jpg
http://i.imgur.com/d09qQzP.jpg
http://i.imgur.com/vvPSbqI.jpg
http://i.imgur.com/1hdfobQ.jpg
http://i.imgur.com/4LLC6Vs.jpg
http://i.imgur.com/RfasxO2.jpg
http://i.imgur.com/BBcpOos.jpg
http://i.imgur.com/zMH8mgG.jpg
http://i.imgur.com/7g8k2Ww.jpg

3
सभी चित्र ... जानवर हैं? 3: क्योंकि मैं प्यारा जानवरों की तरह पी +1: वहाँ कुछ प्रवंचना यहाँ पर जा रहा है
दरवाज़े

1

आर, 182 वर्ण

library(httr);while(0<1){s=paste("http://i.imgur.com/",paste(sample(c(LETTERS,letters),5),collapse=""),".png",sep="");if(HEAD(s)$headers$'content-type'=='text/html')'' else print(s)}

1

पायथन, 153 वर्ण

import string as s,random as w,requests as r
while 1:
 t='http://i.imgur.com/%s.png'%''.join(w.sample(s.letters,5))
 if'not'not in r.get(t).text:print t

जबकि यह काम करता है, यह खूनी धीमा है और किसी भी आउटपुट को वापस करने से पहले कई सेकंड लग सकते हैं।

@ Beary605 के समाधान से प्रेरित होकर - उसने मुझे वर्णों का एक समूह बचा लिया क्योंकि मैं सामग्री-प्रकार के हेडर द्वारा छवि की जांच करने की योजना बना रहा था।


random.sample:) यह पात्रों को चुनने का एक बेहतर तरीका है।
beary605

हां, कमाल है क्या कोड गोल्फ आपको Google के लिए मजबूर करेगा, और सीखेगा।
एलसर

1

बैश (129, 121) (117, 109)

मुझे दो संस्करण मिले हैं: एक पुनरावृत्त और एक अंतहीन पुनरावर्ती एक (जो धीरे-धीरे सभी मेमोरी खाएगा)। दोनों संस्करण यह जाँचते हैं कि क्या वास्तव में PNG फ़ाइल मौजूद है (jpg's, gif और अन्य फ़ाइल प्रकारों को अनदेखा किया गया है)।

Iterative (पुराना) (129):

while true;do u=http://i.imgur.com/$(tr -dc a-zA-Z</dev/urandom|head -c5).png;curl $u -s 2>&1|head -c4|grep PNG$ -q&&echo $u;done

पुनरावर्ती (पुराना) (121):

:(){ u=http://i.imgur.com/$(tr -dc a-zA-Z</dev/urandom|head -c5).png;curl $u -s 2>&1|head -c4|grep PNG$ -q&&echo $u;:;};:

नोट : grep के साथ एक संगतता समस्या हो सकती है। मेरे grep मैनुअल में कहा गया है कि -sgrep का आउटपुट साइलेंट करता है लेकिन यह कुछ नहीं करता है। हालाँकि, उपयोग --quiet, --silentया -qइसके बजाय काम करता है।

संपादित करें:

Https://codegolf.stackexchange.com/a/10499/7195 :) पढ़ने के बाद अब सामग्री हेडर का उपयोग करना

Iterative (117):

while true;do u=http://i.imgur.com/$(tr -dc a-zA-Z</dev/urandom|head -c5).png;curl $u -sI|grep image -q&&echo $u;done

पुनरावर्ती (109):

:(){ u=http://i.imgur.com/$(tr -dc a-zA-Z</dev/urandom|head -c5).png;curl $u -sI|grep image -q&&echo $u;:;};:


0

बैश / कमांड-लाइन उपकरण, 72 वर्ण

उधार लेना @ मेमो की चतुर तकनीक :

curl -sL http://imgur.com/gallery/random|grep e_sr|cut -d\" -f4;exec $0

यह एक ही प्रक्रिया स्थान के भीतर खुद को फिर से निष्पादित करके एक निरंतर लूप प्राप्त करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.