আমাদের নিখোঁজ মৃত খুঁজুন


19

চ্যালেঞ্জ

নকল চ্যালেঞ্জ থেকে আমাদের বাঁচাতে পিটার আবার উঠেছেন!

পিটার টেলর মারা গেছে , এবং কোন সন্দেহ (পৃথক্ সন্দেহ আছে বিপুল পরিমাণ থেকে ভাল, ... কিন্তু শুধু উপেক্ষা করে) এটি সম্পর্কে আছে। তার স্মৃতিতে, আপনাকে অবশ্যই একটি প্রোগ্রাম লিখতে হবে যা নির্ধারিত ব্যবহারকারী জীবিত বা মৃত কিনা তা নির্ধারণ করে।

আরো তথ্য

কোনও ব্যবহারকারী মারা গেছে যদি তাদের যদি এক দিনের বেশি দেখা না যায় তবে তার চেয়ে কম তারা বেঁচে থাকে। এখানে পাওয়া সর্বশেষ দেখা বিভাগটি পরীক্ষা করুন:

সর্বশেষ দেখা স্থান

ইনপুটটি ব্যবহারকারীর আইডি হবে (উদাহরণস্বরূপ, আমার বয়স 30525, এবং পিটার টেলর 194)। ধরে নিন যে সমস্ত ইনপুটগুলি বৈধ পিপিসিজি আইডি।

ব্যবহারকারী জীবিত থাকলে আপনার আউটপুট করা উচিত:

[User name] is alive!

আপনি যেখানে তাদের ব্যবহারকারীর আইডি নয় তার ব্যবহারকারীর ব্যবহারের জন্য [ব্যবহারকারীর নাম] প্রতিস্থাপন করুন ।

যদি ব্যবহারকারী মারা যায়, আপনার আউটপুট করা উচিত:

 Sadly, [User name] is dead.

এসি ডেটা এক্সপ্লোরার ব্যবহার করে টি-এসকিউএল প্রবেশকারীদের অনুমোদিত নয়।

জয়লাভ

বাইটের মধ্যে সংক্ষিপ্ততম প্রোগ্রামটি জিতেছে।

লিডারবোর্ড

var QUESTION_ID=59763;OVERRIDE_USER=30525;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>


2
কেন টি-এসকিউএল / SEDE অস্বীকার করবেন?
Geobits

1
"সর্বশেষ দেখা" এর জন্য নম্বরটি কোথায় পাওয়া যায় তার একটি বিবরণ প্রয়োজন।
feersum

@ ফেয়ারসাম এটি সর্বশেষ দেখা মানের শিরোনাম ট্যাগ।
mınxomaτ

@ ফেয়ারসাম যথেষ্ট ভাল?
বিটা ক্ষয়

1
আমি মনে করি ইন্টারনেটের চেয়ে পার্সিং এর সাথে আরও প্রাসঙ্গিক ।
mınxomaτ

উত্তর:


4

সিজোম, ১১৮ বাইট

"codegolf.xyz/u/"r+g_N/{"s=\"r"/_0='>&!*1>s_"da"#)\_el=!|}#)"Sadly, %s is dead.""%s is alive!"?\"\"User "/1='"/1<e%

আমার বাশের উত্তরের মতামতটি একই , এই উত্তরটি নিয়মিত অভিব্যক্তি ব্যবহার করে না, কারণ সিজেমে নিয়মিত প্রকাশ হয় না ...

অনলাইন দোভাষী ওয়েব অনুরোধগুলি সম্পাদন করে না, সুতরাং এটি কেবল কমান্ড লাইন থেকে কাজ করবে।


8

বাশ, 151 বাইট

r="curl -L codegolf.xyz/u/$1";u=`$r|grep -Pom1 '(?<="User )[^"]*'`
$r|grep -Pq '^[^>]*s="r.*(da|[A-Z])'&&echo "Sadly, $u is dead."||echo "$u is alive!"

যথারীতি, STDERR এ আউটপুট উপেক্ষা করা হয়

উদাহরণ রান

$ ./is-dead 30525 2>&-
Beta Decay is alive!
$ ./is-dead 44935 2>&-
Sadly, Alpha Decay is dead.

ধারণা

এই কোডটি উপস্থিত হওয়ার আগে নেই s="rএমন লাইনগুলির জন্য গ্রেপ করে >। উদাহরণ স্বরূপ:

Last seen <span title="2015-09-17 12:00:00Z" class="relativetime">just now</span>
  • যদি ম্যাচটি স্ট্রিংয়ের পরে হয় তবে daএতে শব্দ yesterdayবা days(যেমন রয়েছে 2 days ago) থাকে।
  • ম্যাচটি যদি বড় হাতের অক্ষর দ্বারা অনুসরণ করা হয় তবে এতে একটি মাসের নাম থাকে।
  • অন্যান্য সমস্ত ক্ষেত্রে, ব্যবহারকারী বেঁচে আছেন und

ব্যবহারকারীর নাম একটি টুইটারের মেটা ট্যাগ থেকে নেওয়া হয়। উদাহরণ:

<meta name="twitter:title" property="og:title" itemprop="title name" content="User Dennis">

3
আমি আমার প্রোফাইল আপডেট করেছি, এবং হঠাৎ আমি মারা গিয়েছি। :(
টেসেল্ল্যাটিংহেকল

5
তুই আর আমার কাছে মরে না।
ডেনিস

1
এটাই স্বস্তি!
টেসেল্ল্যাটিংহেকলার

কে এই ডোমেন নিবন্ধিত?
জিমি 23013


7

জাভাস্ক্রিপ্ট ES6, 234 বাইট

document.write(`<script src="//api.stackexchange.com/users/${prompt(a=d=>{n=(x=d.items[0]).display_name,alert((Date.now()/1e3)-x.last_access_date>86400?`Sadly, ${n} is dead.`:n+' is alive!')})}?site=codegolf&callback=a">\x3C/script>`)

টীকায়িত সংস্করণ

// Inserts a script tag to perform a JSONP callback request on the stackexchange API
document.write(`
  <script src="//api.stackexchange.com/users/${
    prompt( // interpolate user input into url
      a = d =>{ // declare a in global scope
        n = (x = d.items[0]).display_name, // alias the user object and name
        alert(
          (Date.now() / 1e3) - x.last_access_date > 86400 
          ? `Sadly, ${n} is dead.` // a day or less since last seen
          : n + ' is alive!' // more than a day since last seen
        )
      }
    )
  }?site=codegolf&callback=a">\x3C/script>` // escaping that prevents early termination of enclosing script tag
)

আমার নামে অ্যাস্টোস্ট্রোফ পার্স করতে ব্যর্থ, তবুও প্রতিটি অন্যান্য চরিত্রকে সঠিকভাবে পার্স করে। ইন ব্রাউজার পরীক্ষার জন্য এক্সডি +1
কনর ও'ব্রায়ান

1
@ CᴏɴᴏʀO'Bʀɪᴇɴ অভিশাপ এপিআই সত্তা এটি এনকোড করে।
জর্জ রিথ

7

পাওয়ারশেল (ভি 4), 228 217 209 , 157 বাইট

$u=($x=curl "codegolf.xyz/u/$args").BaseResponse.ResponseURI.Segments[-1]
if($x-match'n <(.*?)((c|n|ur)s* ago|w)<'){"$u is alive!"}else{"Sadly, $u is dead."}

যেমন

PS C:\> test.ps1 30525
beta-decay is alive!

C:\> test.ps1 67
Sadly, keith-randall is dead.


#Previous 209 byte version:
$f={$u=((curl "api.stackexchange.com/2.2/users/$($args)?&site=codegolf"
)|ConvertFrom-Json).Items;$d=$u.display_name;if((get-date -U %s)-
$u.last_access_date-gt86400){"Sadly, $d is dead."}else{"$d is alive!"}}

(দুঃখিত, কেথ র্যান্ডাল, সর্বশেষ দেখা তারিখের পরে 1 দিনের সাথে আপনি পাওয়া প্রথম অ্যাকাউন্ট)।

আমি দৃ ,়, নির্ভরযোগ্য 209 বাইট ওয়ান এপিআই কল করে খুশি ছিলাম, তবে স্ক্রিন-স্ক্র্যাপিং হ'ল গল্ফ যাওয়ার উপায়।

  • এটি এখন পুনঃনির্দেশিত ইউআরআই থেকে ব্যবহারকারীর নাম টানছে - তবে এটি প্রয়োজন মতো একটি সংখ্যাসূচক আইডির পরিবর্তে একটি নাম।

  • এবং এটা লাইন মিলে যায় Last seen <span title="2015-10-03 13:15:38Z" class="relativetime">2 days ago</span>সঙ্গে n <... [nr]s ago<, মিনিট (গুলি) আগে (গুলি) আগে ধরা সেকেন্ড বের করার চেষ্টা, ঘন্টা (গুলি) আগে, এবং মাত্র এখন এবং মিস "দিন সপ্তাহ, মাস" আগে, বা দীর্ঘ মেয়াদী তারিখ + + বার। এবং অন্যান্য 'আপেক্ষিক সময়গুলি' নয় বরং 'শেষবার দেখেছি' ধরার চেষ্টা করছেন। (ধন্যবাদ ডেনিস)

বিশেষ দ্রষ্টব্য। এটির curlজন্য একটি ডিফল্ট উপন্যাস Invoke-WebRequest, এটি উইন্ডোজে স্ট্যান্ডার্ড কার্ল প্রোগ্রাম নয়।


2
এছাড়াও আছে secs ago, 1 min ago(না s) এবং আমি মনে করি আমি দেখেছি just now
ডেনিস

@ ডেনিস আমি মনে করি এটি এখন ঠিক হয়ে গেছে, ধন্যবাদ। (আপনার বাশ উত্তরের পিছনে পড়ার মূল্যে; আপনার প্যাটার্নের ম্যাচগুলি ব্যবহার করে আমার নির্লজ্জভাবে চেষ্টা করা উচিত ...)।
TessellatingHeckler

5

আর, 384 350 বাইট

এই আপনার জন্য, পিটার!

u=scan();D=as.POSIXlt;J=jsonlite::fromJSON(gsub("/\\*\\*/a|[()]|;$","",httr::content(httr::GET(paste0("http://api.stackexchange.com/2.2/users/",u,"?site=codegolf&callback=a")),,"text")))$items;l=D(J$last_access_date,z<-"UTC","1970-01-01");n=D(Sys.time(),z);U=J$display_name;if(as.Date(n)-as.Date(l)>1)cat("Sadly,",U,"is dead.")else cat(U,"is alive!")

নোট করুন যে এর জন্য httrএবং jsonliteপ্যাকেজগুলি ইনস্টল করা দরকার, যদিও এই কোডটি কাজ করার জন্য তাদের আমদানি করতে হবে না যেহেতু আমরা স্পষ্টভাবে নেমস্পেসগুলি উল্লেখ করছি।

Ungolfed:

# Read a user ID from STDIN
u <- scan()

# Create a request object using the SE API v2.2
request <- httr::GET(paste0("http://api.stackexchange.com/2.2/users/", u,
                            "?site=codegolf&callback=a"))

# Read the contents of the request into a ill-formed JSON string
body <- httr::content(request, type = "text")

# Parse out a valid string and get the associated fields
J <- jsonlite::fromJSON(gsub("/\\*\\*/a|[()]|;$", "", body))$items

# Get the last accessed date as a POSIX datetime object
l <- as.POSIXlt(J$last_access_date, "UTC", "1970-01-01")

# Get the current date
n <- as.POSIXlt(Sys.time(), "UTC")

# Extract the username
U <- J$display_name

# Determine whether the user has died
if (as.Date(n) - as.Date(l) > 1) {
    cat("Sadly," U, "is dead.")
} else {
    cat(U, "is alive!")
}

আমার পূর্ববর্তী পদ্ধতির উপর 5 বাইট সংরক্ষণ করা এবং আমার বর্তমান পদ্ধতির একটি ত্রুটি সংশোধন করে মিন্সোম্যাটকে ধন্যবাদ!


আমি আর সম্পর্কে জানি না, তবে স্ট্রিং আক্ষরিককে "/users/"একটি ভেরিয়েবলের মধ্যে রেখে কিছু বাইট সংরক্ষণ করতে পারি না ?
mınxomaτ

@ এমিনেক্সোম্যাট নিশ্চিত, ধন্যবাদ!
অ্যালেক্স এ।

; n এবং; বাইট একই পরিমাণ নিতে। সুতরাং আপনার
কোডটির

@ ওগানম আসলে, আর-তে, ভাববে যে উত্তরোত্তর scan()লাইনগুলি আপনি স্টাডিআইএন থেকে প্রবেশ করতে চান (কেন এটি জানেন), তাই এই ক্ষেত্রে সেমিকোলনগুলি প্রয়োজনীয়। তবে সাধারণভাবে আপনি ঠিক বলেছেন।
অ্যালেক্স এ 0

5

অটোআইটি, 320 316 308 বাইট

#include<String.au3>
#include<Date.au3>
$0=_StringBetween
$1=BinaryToString(InetRead('http://codegolf.xyz/u/'&ClipGet()))
$2=_DateDiff('D',StringReplace($0($1,'Last seen <span title="',' ')[0],'-','/'),@YEAR&'/'&@MON&'/'&@MDAY)
ConsoleWrite(($2?'Sadly, ':'')&$0($1,'r ','- P')[0]&'is '&($2?'dead.':'alive!'))

_DateDiffদিনের পার্থক্য গণনা করে ( 'D')। পার্থক্যটি যদি 1 দিনের চেয়ে কম হয় তবে এটি 0 হবে, সুতরাং আমরা এটি বুলিয়ান মান হিসাবে ব্যবহার করতে পারি। "সর্বশেষ দেখা" মানের শিরোনাম ট্যাগটিতে একটি (প্রায়) মানক টাইমস্ট্যাম্প রয়েছে।


2
আমি এক দশকেরও বেশি সময় এটি অটো দেখতে পাইনি। প্রভু, আমার উঁচুতে নিন।
কিউস

1

পিএইচপি, 187 বাইট

কোডগলফ.এক্সিজ ডোমেন ব্যবহার করে মোটামুটি সরল পদ্ধতিতে এখানে কিছুটা ভিন্ন আইটেম হ'ল আমি উভয় ভেরিয়েবল একবারে পাওয়ার চেষ্টা করি। সঠিক ফলাফল সহ কয়েকটি ব্যবহারকারীর উপর পরীক্ষিত, যদি কিছু সমস্যা ক্ষেত্র রয়েছে তবে দয়া করে আমাকে জানান!

<?preg_match('/"User ([^"]+)".+?"([^"]+)" class="r/s',file_get_contents("http://codegolf.xyz/u/$argv[1]"),$m);echo time()-strtotime($m[2])<86400?"$m[1] is alive!":"Sadly, $m[1] is dead.";

ব্যবহার:

php 59763.php 30525

$m[1] is দুইবার প্রদর্শিত হয়। এটি প্রথমে মুদ্রণ করা এবং কেবল মৃত / জীবিত অংশের জন্য টের্নারিটি ব্যবহার করা কি সস্তা হবে না?
mınxomaτ

@ এমিন্সোম্যাট আমি এটি নিয়ে খেললাম, তবে Sadly, ...অংশটি পেলাম ... মনে হয় না এটিকে আমার মাথা পেতে হবে!
ডম হেস্টিংস

দুঃখজনকভাবে প্রথমে প্রতিধ্বনি করুন, তারপরে ফলাফলটি time()-strtotime($m[2])একটি একক-চর ভেরিয়েবলের জন্য বরাদ্দ করুন । তারপরে ইকো $m[1] is এবং শেষ পর্যন্ত মৃত / জীবিত। আমি এটিই করেছিলাম
ডান্নো

@ এমিন্সোম্যাট আহহহ, এত সহজ, তবে আমি এটার চারপাশে মাথা পেতে পারি নি! ধন্যবাদ! আমি আবার পরীক্ষা করার সাথে সাথে আপডেট করব!
ডম হেস্টিংস

1

গ্রোভি, 355 বাইট

import groovy.json.JsonSlurper;import java.util.zip.GZIPInputStream;def d = new JsonSlurper().parseText(new GZIPInputStream(new URL("http://api.stackexchange.com/2.2/users/${args[0]}?site=codegolf").newInputStream()).getText()).items[0];def n = d.display_name;println d.last_access_date*1000l<new Date().time-8.64E7?"Sadly, ${n} is dead.":"${n} is alive!"

সঙ্কলিত উত্স

import groovy.json.JsonSlurper;
import java.util.zip.GZIPInputStream;

def rawText = new GZIPInputStream(new URL("http://api.stackexchange.com/2.2/users/${args[0]}?site=codegolf").newInputStream()).getText()
def json = new JsonSlurper().parseText(rawText).items[0]
def name = json.display_name
//We have to correct for java date returning in millis
def lastAccess = json.last_access_date * 1000l
def yesterday = new Date().time - 86400000
if (lastAccess < yesterday) {
    println "Sadly, ${name} is dead."
} else {
    println "${name} is alive!"
}

আপনি যদি আমদানির পরিবর্তে নতুন নতুন গ্রোভি.জেসন.জসনস্লার্পার এবং নতুন java.util.zip.GZIPInputStream করেন তবে আপনি 42 বাইট সংরক্ষণ করতে পারেন (এটি 313 বাইটে নামিয়ে আনুন)। আমদানি কেবলমাত্র অর্থ প্রদান করে যদি আপনি একটি ক্লাস প্রচুর ব্যবহার করেন।
একটি স্প্যাগেটো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.