Nhận danh sách các huy hiệu trên trang web này mà chưa ai nhận được


8

Tạo mã nhận danh sách các huy hiệu mà chưa ai nhận được (ví dụ: bằng cách sử dụng API trang web này cho huy hiệu ) và xuất danh sách được sắp xếp của các huy hiệu đó, với mỗi dòng mới.

Đầu ra ví dụ (có thể nhỏ hơn, tùy thuộc vào thời điểm bạn thực hiện thử thách này):

Archaeologist
Caucus
Constituent
Copy Editor
Deputy
Electorate
Epic
Generalist
Hacker
Legendary
Marshal
Outspoken
Research Assistant
Sheriff
Steward
Strunk & White
Tenacious
Unsung Hero

Mã nhỏ nhất thắng.


ý tưởng hay, cũng nghi ngờ Stack Exchange Data Explorer có thể làm điều đó (không có câu trả lời nào cho đến nay) trên thực tế có thể truy vấn web đang thực hiện một truy vấn SQL ở trung tâm ...
vzn

Câu trả lời:


8

JavaScript với jQuery (được tải lên các trang SE theo mặc định), 58

$('.badge',$('.badge-count:not(:has(*))').parent()).text()

Phải được chạy trên https://codegolf.stackexchange.com/help/badges . ;)

Đầu ra tuân thủ nghiêm ngặt, 116 ký tự:

[].join.call($('.badge',$('.badge-count:not(:has(*))').parent()).map(function(){return $(this).text()}).sort(),'\n')

Ảnh chụp màn hình của đầu ra giao diện điều khiển (bấm vào để phóng to):

ảnh chụp màn hình của đầu ra giao diện điều khiển


Được sử dụng libs bên ngoài được phép?
Szymon Toda

3
@Ultra jQuery được tải lên các trang SE theo mặc định.
Doorknob

6

Bash, 173 ký tự

curl "https://api.stackexchange.com/2.1/badges?page="{0..50}"&pagesize=100&order=desc&sort=type&site=codegolf"|gunzip|grep -Po '{"name".*?award_count":0.*?}'|cut -d'"' -f 4

Mặc dù bạn có thể loại bỏ một số ký tự bằng cách sử dụng rút ngắn url.

CẢNH BÁO: Lưu ý rằng việc chạy tập lệnh này một vài lần sẽ dẫn đến điều này:

{"error_name":"throttle_violation","error_message":"too many requests from this IP, more requests available in 84495 seconds","error_id":502}

Đầu ra cho codegolf.SE:

code-golf
Informed
Research Assistant
Caucus
Constituent
Outspoken
Deputy
Vox Populi
Excavator
Analytical
Self-Learner
Hacker
Beta
Legendary
Electorate
Investor
Tenacious
Unsung Hero

EDIT: điều chỉnh nó một chút.


Bash - huehuehue. PS có /dev/nullthực sự cần thiết ở đây?
Szymon Toda

Bạn có thể sử dụng curlthay vì wget -O-.
Konrad Borowski

Hmm Tôi nghĩ rằng tôi đã xóa / dev / null mà tôi đã thử nghiệm.
Thom Wiggers

1

PHP - 92 86 ký tự

<?=html_entity_decode(substr(file_get_contents("http://tinyurl.com/q9zlwfr"),12937,190));

Lấy cảm hứng từ giải pháp của Victor. Rất dễ bay hơi.


0

Java - 280 267 260

class A{public static void main(String[]z)throws Exception{String s="";int y;java.io.InputStream x=new java.net.URL("http://tinyurl.com/q9zlwfr").openStream();while((y=x.read())!=-1)s+=(char)y;System.out.println(s.substring(12937,13126).replace("amp;",""));}}

1
Điều đó có vẻ ... không ổn định. Nếu nhóm Stack Exchange thực hiện hầu hết mọi thay đổi đối với trang web của họ (hoặc nếu câu hỏi của tôi sẽ được sửa đổi), nó sẽ trả về danh sách sai. Bên cạnh đó, danh sách có thể không cập nhật.
Konrad Borowski

Tại sao tên lớp quá dài? Tại sao đối số maincủa tên quá dài? Tại sao có khoảng trắng không cần thiết sau InputStream?
Doorknob

@DoorknobofSnow Lưu ý tốt. Những cái này bị trượt khi tôi đang chuyển đổi phiên bản không có người chơi sang phiên bản golf.
Victor Stafusa

@xfix Vâng, rất dễ bay hơi. Đó là cố ý.
Victor Stafusa

Tôi muốn chỉnh sửa câu hỏi chỉ bằng một chữ cái để troll bạn :-D
Doorknob
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.