Bu bir film bul mücadelesi


10

Bu basit (ish) bir web kazıma mücadelesidir.

Giriş

Kodunuz bir MPAA film derecelendirmesini ve giriş olarak 0 ila 100 arasında bir sayı almalıdır . Bunu uygun bulduğunuz herhangi bir şekilde yapabilir.

Çıktı

Kodunuz, a) o film derecesine ve b) Domatesmetre üzerindeki çürük domateslerden alınan sayısal puana sahip herhangi bir filmin adını döndürmelidir .

Böyle bir film yoksa, istediğiniz herhangi bir şeyi çıkarabilir.

Olası MPAA film derecelendirmeleri G, PG, PG-13, R, NC-17, NR.

Kodunuz size bağlı bir veya daha fazla film bildirebilir.

Açıklığa kavuşturmak için, kodunuz sorguların yanıtlarını almak için web'e erişmeyi amaçlamaktadır.

Misal

Girdi "PG, 98" deyin, sonra kod "Zootropolis" çıktı olabilir.

Lütfen film derecelendirmesiyle çalışan kodunuza bir örnek gösterin PGve 98cevabınızla birlikte puan verin.


O_O NC-17 kötü görünüyor
Christopher

1
NC-17, diğerlerinin aksine, bir sözde uygunsuz olduğu. : P
totallyhuman

Cevabım birden fazla film döndürmeli mi?
BlackCap

1
@BlackCap Soruyu düzenledi. Sana bağlı.

Zootropolis veya Zootopia?
BlackCap

Yanıtlar:


2

Stratos , 133 bayt

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

Dene!


Kodunuzun kullanılmakta olduğunu gösteren bir örnek gösterir misiniz?

@Lembik Peki, çalıştırın ve sayıyı yazın, enter tuşuna basın, derecelendirmeyi yazın, enter tuşuna basın, size çıktı verecektir.
Okx

Bırakabilir misin www.?
Shaggy

@Shaggy Maalesef değil.
Okx

Belki de çalışan bir ekran görüntüsünü yayınlayabilirsiniz?

12

Bash, 182 bayt

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[^"]*'

Kullanımı:

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

Bu cevabı gerçekten çok beğendim.

6

JavaScript (ES6), 167 162 159 bayt

Rottentomatoes.com kökünden çalıştırılması gerekiyor . Başlığı içeren bir Promisenesne döndürür .

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)

Biz Eğer belirli bir dizinde çalıştırmak gerektirir o zaman 139 bayt olur:

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)

Javascript cevaplarını test etmek için bir tıklama ve görünüm yolu olsaydı harika olurdu.

@Lembik: normalde API'lerle çalışırken yapılabilir, ancak bu durumda RT'nin CORS politikası bunu önler. Bu arada kabul için teşekkürler.
Shaggy

Hmm .. Daha kısa cevaplar olduğunu fark ettim ama şu anda Stratos kodunu test etmek için enerji / uzmanlığa sahip değilim. Eğer yaparsam, kabulü değiştirmem gerekecek, üzgünüm.

@Lembik: Stratos'un bunu elde etmesini bekledim (şimdiye kadar).
Shaggy

Oh, diğer film bulma sorusuna bir ödül ekledim :)

3

Python 2 + istekleri, 209 204 bayt

Ian Gödel sayesinde -5 bayt.

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
Gereksinim duyabileceğinizi düşünün (t, t) (r, r)
ElPedro

1
Bu bağlantıyı kullanabilirsiniz: http://rottentomatoes.com/api/private/v2.0/browse?minTomato=%d&maxTomato=%d&type=dvd-streaming-all( https-> httpve bırak www.) birkaç bayt kaydedildi .

1
Kodunuzun kullanılmakta olduğunu gösteren bir örnek gösterir misiniz?

2

q / kdb + , 168 bayt

Çözüm:

{(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]}

Misal:

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)"

Açıklama:

.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

Notlar:

  • Bunu kendiniz denemek istiyorsanız , ortamınızın doğru ayarlandığından emin olmak için Yemek Kitabı / SSL sayfasını okuyun .
  • Biz kaldırırsanız Başarısız sbir httpsveya www.verir 301 Permanently Movedyanıtı.

Belki cevabınızın başlığına "q / kdb +" için link ekleyin? Birçok insan bunu hiç duymayacak ve siz onları eğitebilirsiniz (ben).

Tamamlandı :) OK'de bir çözüm yazmayı umuyordum ama çevrimiçi yanıt ( johnearnest.github.io/ok/index.html) kullanırken bir 'Hayır' Erişim-Kontrol-İzin Verme Başlığı var ... ' ), bu yüzden kapalı kaynak Q'ya geri döndü.
streetster

2

JavaScript (ES2017), 158 bayt

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

Çalıştırın Çürük Domates ana sayfasına :

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)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.