यह एक फिल्म की चुनौती है


10

यह एक सरल (ish) वेब स्क्रैपिंग चुनौती है।

इनपुट

आपके कोड को एमपीएए फिल्म रेटिंग और इनपुट के रूप में 0 से 100 तक की संख्या लेनी चाहिए । यह किसी भी तरह से आप सुविधाजनक पा सकते हैं।

उत्पादन

आपके कोड को किसी भी फिल्म का नाम वापस करना चाहिए, जिसमें क) फिल्म की रेटिंग और b) रॉटेंटोमेटो से टोमाटोमीटर पर संख्यात्मक स्कोर है ।

अगर ऐसी कोई फिल्म नहीं है तो यह आपकी पसंद की चीज़ों को आउटपुट कर सकती है।

संभावित MPAA फिल्म रेटिंग हैं G, PG, PG-13, R, NC-17, NR

आपका कोड एक या एक से अधिक फिल्मों की सूचना दे सकता है, जो आपके ऊपर है।

स्पष्ट करने के लिए, आपका कोड प्रश्नों का उत्तर पाने के लिए वेब तक पहुंचने के लिए है।

उदाहरण

कहते हैं कि इनपुट "पीजी, 98" है तो आपका कोड "ज़ूट्रोपोलिस" का उत्पादन कर सकता है।

कृपया फिल्म कोड के साथ काम करने वाले अपने कोड का एक उदाहरण दिखाएं PGऔर 98अपने उत्तर के साथ स्कोर करें।


O_O NC-17 बुरा लगता है
क्रिस्टोफर

1
NC-17, दूसरों के विपरीत, अनुचित माना जाता है। : पी
बिलकुल अमानवीय

क्या मेरा जवाब एक से अधिक फिल्मों में वापस आना चाहिए?
ब्लैककैप

1
@BlackCap ने प्रश्न संपादित किया। यह आप पर निर्भर है।

ज़ूट्रोपोलिस या ज़ूटोपिया?
BlackCap

जवाबों:


2

स्ट्रैटोस , 133 बाइट्स

{
f"www.rottentomatoes.com/api/private/v2.0/browse?minTomato=%&maxTomato=%&type=dvd-streaming-all"r"results")s"mpaaRating"=⁰
s"title"

कोशिश करो!


क्या आप कृपया अपने कोड का उदाहरण दिखा सकते हैं।

@Lembik खैर, इसे चलाएं, और संख्या में टाइप करें, एंटर दबाएं, रेटिंग टाइप करें, एंटर दबाएं, और यह आपको आउटपुट देगा।
ओकेक्स

क्या तुम गिरा सकते हो www.?
झबरा

@ शैगी दुर्भाग्य से नहीं।
15

हो सकता है कि आप इसे चलाने का स्क्रीनशॉट पोस्ट कर सकें?

12

बैश, 182 बाइट्स

curl "https://www.rottentomatoes.com/api/private/v2.0/browse?minTomato=$2&maxTomato=$2&type=dvd-streaming-all" 2>/dev/null|grep -o "{[^}]*aRating\":\"$1\""|grep -Po 'title":"\K[^"]*'

उपयोग:

$ bash script PG 98
The Island President
Inside Out
Zootopia
Paddington
Love & Friendship
Long Way North (Tout en haut du monde)

मुझे वास्तव में यह उत्तर पसंद है।

6

जावास्क्रिप्ट (ईएस 6), 167 162 159 बाइट्स

Rottentomato.com की जड़ से चलाने की जरूरत है । शीर्षक वाली कोई Promiseवस्तु लौटाता है

s=>n=>fetch(`api/private/v2.0/browse?minTomato=${n}&maxTomato=${n}&type=dvd-streaming-all`).then(r=>r.json()).then(j=>j.results.find(x=>x.mpaaRating==s).title)

यदि हम यह सुनिश्चित कर सकते हैं कि इसे एक विशिष्ट निर्देशिका में चलाया जाए तो यह 139 बाइट्स हो जाती है:

s=>n=>fetch(`browse?minTomato=${n}&maxTomato=${n}&type=dvd-streaming-all`).then(r=>r.json()).then(j=>j.results.find(x=>x.mpaaRating==s).title)

यह बहुत अच्छा होगा यदि जावास्क्रिप्ट उत्तरों को जांचने के लिए क्लिक और लुक तरीका हो।

@ लेम्बिक: आम तौर पर एपीआई के साथ काम करते समय किया जा सकता है लेकिन, इस मामले में, आरटी की कोर पॉलिसी इसे रोकती है। स्वीकार करने के लिए धन्यवाद, वैसे।
शगि

हम्म..मैंने देखा कि छोटे जवाब हैं, लेकिन अभी स्ट्रैटोस कोड का परीक्षण करने के लिए मेरे पास ऊर्जा / विशेषज्ञता नहीं है। अगर मैं करता हूं, तो मुझे स्वीकार करना पड़ेगा, क्षमा करें।

@ लेम्बिक: मुझे पूरी उम्मीद है कि स्ट्रैटोस इसे प्राप्त करेगा (अब तक)।
झबरा

ओह, मैंने अन्य खोज-इन-मूवी प्रश्न के लिए एक इनाम जोड़ा है :)

3

पायथन 2 + अनुरोध, 209 204 बाइट्स

-5 बाइट्स इयान गोडेल को धन्यवाद।

lambda r,t:[i['title']for i in get('http://rottentomatoes.com/api/private/v2.0/browse?minTomato=%d&maxTomato=%d&type=dvd-streaming-all'%(t,t)).json()['results']if i['mpaaRating']==r]
from requests import*

1
सोचें कि आपके पास (आर, आर) की आवश्यकता (t, t) हो सकती है
ElPedro

1
आप इस लिंक का उपयोग कर सकते हैं: http://rottentomatoes.com/api/private/v2.0/browse?minTomato=%d&maxTomato=%d&type=dvd-streaming-all( https-> httpऔर ड्रॉप www.) के लिए बचाया बाइट्स के एक जोड़े

1
क्या आप कृपया अपने कोड का उदाहरण दिखा सकते हैं।

2

क्यू / केडीबी + , १६ k बाइट्स

समाधान:

{(r(&)(r:.j.k[.Q.hg`$"https://www.rottentomatoes.com/api/private/v2.0/browse?type=dvd-streaming-all&min",t,"&max",t:"Tomato=",y]`results)[;`mpaaRating]like x)[;`title]}

उदाहरण:

q){(r(&)(r:.j.k[.Q.hg`$"https://www.rottentomatoes.com/api/private/v2.0/browse?type=dvd-streaming-all&min",t,"&max",t:"Tomato=",y]`results)[;`mpaaRating]like x)[;`title]}["PG";"98"]
"The Island President"
"Inside Out"
"Zootopia"
"Paddington"
"Love & Friendship"
"Long Way North (Tout en haut du monde)"

स्पष्टीकरण:

.Q.hg           / fetch a URL
.j.k            / parse json string into Q dictionaries
`results        / index into dictionary with key `results
[;`mpaaRating]  / index into these sub dictionaries extracting mpaaRating
like x          / binary list where they match, e.g. "PG"
(&)             / where, list indices where true
[;`title]       / index into dictionary with key `title

टिप्पणियाँ:

  • यदि आप इसे स्वयं आज़माना चाहते हैं, तो यह सुनिश्चित करने के लिए कुकबुक / एसएसएल पेज के माध्यम से एक रीड लें कि आपका वातावरण सही ढंग से सेटअप हो।
  • यदि हम हटाते sहैं https, या प्रतिक्रिया www.देते हैं, तो 301 Permanently Movedप्रतिक्रिया देता है ।

हो सकता है कि अपने उत्तर के शीर्षक में "q / kdb +" के लिए एक लिंक जोड़ें? बहुत सारे लोगों ने इसके बारे में कभी नहीं सुना होगा और आप उन्हें (मुझे) शिक्षित कर सकते हैं।

हो गया :) मैं ओके में एक समाधान लिखने की उम्मीद कर रहा था, लेकिन ऑनलाइन उत्तर ( johnearnest.github.io/ok/index.html) का उपयोग करते समय एक 'नहीं' एक्सेस-कंट्रोल-अनुमति-उत्पत्ति 'हेडर मौजूद है ... ), इसलिए बंद स्रोत पर वापस आ गए हैं।
स्ट्रीटस्टर

2

जावास्क्रिप्ट (ES2017), 158 बाइट्स

async(r,n)=>(await(await fetch(`api/private/v2.0/browse?minTomato=${n}&maxTomato=${n}&type=dvd-streaming-all`)).json()).results.find(m=>m.mpaaRating==r).title

सड़े हुए टमाटर होम पेज से चलाएं :

f=async(r,n)=>(await fetch(`api/private/v2.0/browse?minTomato=${n}&maxTomato=${n}&type=dvd-streaming-all`).then(x=>x.json())).results.find(m=>m.mpaaRating==r).title
f('PG',98).then(console.log)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.