एक उपयोगकर्ता प्रतिष्ठा की गणना करें


12

चुनौती

उपयोगकर्ता के नाम को देखते हुए (आईडी नहीं, हमारे पास वह चुनौती पहले से ही है), अपनी वर्तमान प्रतिष्ठा और अपनी आईडी का उत्पादन।

इनपुट

इनपुट एक एकल स्ट्रिंग होगी जो उपयोगकर्ता का उपयोगकर्ता नाम है। आप मान सकते हैं कि यह उपयोगकर्ता मौजूद है।

उत्पादन

आउटपुट या तो STDOUT या STDERR के दो पूर्णांक होंगे जो उपयोगकर्ता की प्रतिष्ठा और उपयोगकर्ता की आईडी होगी। वे उस विशिष्ट क्रम में होने चाहिए और किसी भी उचित प्रारूप में आउटपुट हो सकते हैं

विशिष्ट तथ्य

  • प्रतिष्ठा आउटपुट दिनांक से 10 मिनट से अधिक नहीं होना चाहिए।
  • आपका कार्यक्रम सामान्य निष्पादन के दौरान कोई त्रुटि नहीं फेंक सकता है
  • मानक कमियां लागू होती हैं (जिनमें कोई URL शॉर्टनर नहीं है)
  • यदि उस उपयोगकर्ता नाम के साथ एक से अधिक उपयोगकर्ता हैं, तो आप उस उपयोगकर्ता नाम के साथ किसी भी उपयोगकर्ता के आंकड़ों का उत्पादन कर सकते हैं। यह भी है कि आपको आईडी का उत्पादन क्यों करना चाहिए।
  • आउटपुट होने की प्रतिष्ठा PPCG पर उपयोगकर्ता की प्रतिष्ठा है, न कि नेटवर्क कुल स्कोर।

स्टैक एक्सचेंज एपीआई साइट यहां पाया जा सकता है । आप वहां से प्रलेखन पढ़ सकते हैं।


स्टैक-एक्सचेंज एपीआई को लिंक करें।
मैजिक ऑक्टोपस Urn

@carusocomputing करेंगे, धन्यवाद। मुझे कुछ ठीक करने की भी आवश्यकता है क्योंकि जाहिर है कि कई उपयोगकर्ताओं का एक ही नाम हो सकता है।
हाइपरनेत्रिनो

मुझे लगता है कि यह नियम लागू होता है? इसके अलावा, क्या आप पुष्टि कर सकते हैं कि यह SE के बजाय PPCG पर उपयोगकर्ता की कुल प्रतिष्ठा है?
अरनौलद

@Arnauld मैं हां कहूंगा। और मैं पुष्टि करता हूं कि यह पीपीसीजी प्रतिष्ठा है। मैं चुनौती में इसे स्पष्ट करूंगा। धन्यवाद।
हाइपरनेत्रिनो

खैर मैं ऐसा किया T-SQL प्रविष्टि लेकिन यह बैठक नियम 1 के रूप में यह काफी :( अद्यतन नहीं है नहीं है
ʰᵈˑ

जवाबों:


1

बैश + JQ , 93 बाइट्स

87 बाइट संस्करण को वापस ले लिया, क्योंकि यह बहु-उपयोगकर्ता प्रतिक्रियाओं को सही ढंग से नहीं संभाल रहा था।

golfed

curl "api.stackexchange.com/users?site=codegolf&inname=$1"|zcat|jq ..\|numbers|sed -n 4p\;12p

अलग लाइनों पर पहले उपयोगकर्ता आईडी और प्रतिष्ठा का उत्पादन करेगा।

यह काम किस प्रकार करता है ?

1) curl + zcatJSON स्वरूपित API उत्तर प्राप्त करने के लिए उपयोग किया जाता है

2) jq ..|numbersJSON को पुनरावर्ती रूप से प्रकट करेगा, और सभी संख्यात्मक मानों को मुद्रित करेगा, प्रति पंक्ति एक

...
1   35
2   8
3   2
4   3315904
5   1487694154
6   1492702469
7   4565
8   82
9   82
10  60
11  20
12  6275
...

(लाइन नंबर nlकेवल चित्रण प्रयोजनों के लिए जोड़े गए थे )

3) इसके बाद हम sedपहली account_idऔर पहली reputationपंक्ति को देखने के लिए उपयोग करते हैं

परीक्षा

>./reputation zeppelin
3315904
6275

6

जावास्क्रिप्ट (ईएस 6), 145 139 136 125 123 123 बाइट्स

a=>fetch(`//api.stackexchange.com/users?site=codegolf&filter=!)LgZAmQ6ls0hH&inname=`+a).then(_=>_.text()).then(alert)

6 बाइट्स को शैगी के लिए धन्यवाद और साइओस को 6 बाइट्स के लिए धन्यवाद।

मुझे यकीन नहीं है कि यह सभी उपयोगकर्ताओं को एक ही नाम के साथ आउटपुट करना चाहिए, या उनमें से सिर्फ एक; यह कोड उन सभी को आउटपुट करता है।

f=a=>fetch(`//api.stackexchange.com/users?site=codegolf&filter=!)LgZAmQ6ls0hH&inname=`+a).then(_=>_.text()).then(alert)

f("tom")


मुझे इससे हराएं। 6 बाइट्स के साथ सहेजें "//api.stackexchange.com/users?site=codegolf&inname="+a
शैगी

नोट: ऐसा लगता है कि आपको (संभवतः) चाहिए की तुलना में आप अधिक परिणाम लौटाते हैं। मैं क्या उचित है पर HyperNeutrino की प्रतिक्रिया प्राप्त करने की कोशिश कर रहा हूं, लेकिन आपका परिणाम उन उपयोगकर्ताओं के लिए मान देता है जिनके नाम में केवल इनपुट शामिल है - बिल्कुल मेल नहीं खाता। तो आपका शीर्ष परिणाम "टॉम कारपेंटर" के लिए है न कि "टॉम" के लिए।
दासन

क्या _=>alert(_)बस के साथ प्रतिस्थापित करना संभव होगा alert?
साइओस

@ डायसन हां, यह एक बिंदु है जिस पर मुझे यकीन नहीं था; पुष्टि होने पर मैं अपना उत्तर बदल दूंगा।
टॉम

@ यह काम किया, धन्यवाद!
टॉम

4

पायथन 2, 178 169 149 बाइट्स

मैं इसके लिए अनुरोधों का उपयोग करूंगा:

from requests import*
a=get("http://api.stackexchange.com/users?site=codegolf&inname="+input()).json()["items"][0]
print a["reputation"],a["user_id"]

मूल रूप से, यह JSON के रूप में जानकारी लाने के लिए स्टैक के एपी का उपयोग करता है और फिर आइटम "प्रतिष्ठा" प्राप्त करता है। इसके अतिरिक्त, एपीआई में कई अतिरिक्त पैरामीटर थे, मैंने उन लोगों को भी बंद कर दिया।

से उदार योगदान: कारुसोकोम्पुटिंग, एलपेड्रो, मालीविल, कीर्तन प्रभाकरन


["items"][0]यह केवल पहला परिणाम प्राप्त करता है, कई उपयोगकर्ताओं के मामले में यह अभी भी एक्स्ट्रा को नजरअंदाज करेगा यदि मैं गलत नहीं हूं।
मैजिक ऑक्टोपस Urn

import requests as rऔर r.get(...4 बाइट्स बचाता है।
एलपेड्रो

@ElPedro ने इसे अपडेट किया, इनपुट के लिए धन्यवाद।
नील

1
यदि आप मापदंडों को पुनर्व्यवस्थित करते हैं ताकि यह पढ़े कि ?site=codegolf&inname="आप 3 बाइट्स (+ "") बचा सकते हैं
मैलिविली

1
का उपयोग from requests import*;a=get()कर एक बाइट कम कर देता है!
कीर्तन प्रभाकरन २०'१rab को १३:०५

3

ग्रूवी, 144 156 बाइट्स

{new groovy.json.JsonSlurper().parse(new URL("http://api.stackexchange.com/2.2/users/?site=codegolf&inname=$it")).items.collect{[it.user_id,it.reputation]}}

गुमनाम बंद।

EDIT: groovy.json.JSON स्लरपर + 14 बाइट्स के आयात का उपयोग करना भूल गया ।

उदाहरण आउटपुट [[UserID, Reputation],...]:

[[20260, 60695], [20469, 21465], [3103, 8856], [41805, 7783], [134, 6829], [42643, 5622], [45268, 4389], [10732, 3976], [32, 3635], [53745, 3392], [10801, 3216], [49362, 2418], [2104, 2160], [3563, 1988], [18280, 1491], [742, 1466], [59487, 1362], [19039, 1330], [56642, 1133], [9522, 951], [34438, 886], [1744, 793], [52661, 778], [18187, 768], [11426, 751], [26850, 711], [178, 637], [29451, 631], [19700, 616], [15862, 601]]

8
JsonSlurper ... o_O
HyperNeutrino


@HyperNeutrino अगर आपको कभी भी इसे देखने का मौका मिलता है, तो मैं इसे अपनी पसंदीदा JSON पार्सिंग लाइब्रेरी मानता हूं। यह कितना आसान है।
मैजिक ऑक्टोपस Urn

ठीक है धन्यवाद! मैं इसे देख लूंगा।
हाइपरएन्यूट्रीनो

0

स्विफ्ट, 225 201 बाइट्स

import Foundation;var f:(String)->Any={return try!JSONSerialization.jsonObject(with:Data(contentsOf:URL(string:"http://api.stackexchange.com/users?site=codegolf&filter=!)LgZAmQ6ls0hH&inname=\($0)")!))}

संयुक्त राष्ट्र के golfed:

import Foundation

var f:(String) -> [String: Any] = {
    return try! JSONSerialization.jsonObject(with:Data(contentsOf:URL(string:"http://api.stackexchange.com/users?site=codegolf&filter=!)LgZAmQ6ls0hH&inname=\($0)")!)) as! [String:Any]
}

उदाहरण आउटपुट:

["items": <__NSArrayI 0x6180001ffc00>(
{
    reputation = 2820;
    "user_id" = 42295;
},
{
    reputation = 2468;
    "user_id" = 31203;
},
{
    reputation = 2106;
    "user_id" = 2800;
},
{
    reputation = 1479;
    "user_id" = 6689;
},
{
    reputation = 1287;
    "user_id" = 64424;
},
{
    reputation = 1037;
    "user_id" = 64070;
},
{
    reputation = 644;
    "user_id" = 25193;
},
{
    reputation = 641;
    "user_id" = 3171;
},
{
    reputation = 639;
    "user_id" = 743;
},
{
    reputation = 590;
    "user_id" = 33233;
},
{
    reputation = 571;
    "user_id" = 26993;
},
{
    reputation = 563;
    "user_id" = 1730;
},
{
    reputation = 321;
    "user_id" = 18570;
},
{
    reputation = 309;
    "user_id" = 39156;
},
{
    reputation = 291;
    "user_id" = 7880;
},
{
    reputation = 281;
    "user_id" = 25190;
},
{
    reputation = 261;
    "user_id" = 40820;
},
{
    reputation = 231;
    "user_id" = 14154;
},
{
    reputation = 206;
    "user_id" = 2774;
},
{
    reputation = 196;
    "user_id" = 48231;
},
{
    reputation = 181;
    "user_id" = 1230;
},
{
    reputation = 176;
    "user_id" = 64077;
},
{
    reputation = 171;
    "user_id" = 31365;
},
{
    reputation = 171;
    "user_id" = 43455;
},
{
    reputation = 163;
    "user_id" = 21469;
},
{
    reputation = 161;
    "user_id" = 11845;
},
{
    reputation = 157;
    "user_id" = 25181;
},
{
    reputation = 131;
    "user_id" = 263;
},
{
    reputation = 131;
    "user_id" = 3922;
},
{
    reputation = 128;
    "user_id" = 67227;
}
)
]
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.