एक टिप्पणी छोड़ें


16

कार्य:

एक कार्यक्रम बनाएं जो इस प्रश्न पर एक टिप्पणी छोड़ देता है। सामग्री होनी चाहिए 1234567890123456

संपादन:

  1. आप के रूप में अपने उपयोगकर्ता नाम और पासवर्ड को छोड़ सकते हैं Uऔर Pयदि आप उपयोगकर्ता नाम और पासवर्ड का उपयोग कर रहे हैं। (यदि लागू हो)

  2. कोई URL शॉर्टनर (यदि लागू हो)

  3. आप ब्राउज़र कंसोल का उपयोग नहीं कर सकते हैं।


27
कृपया इस चुनौती के अंत में अपने इनबॉक्स का एक स्क्रीनशॉट पोस्ट करें ...
मार्टिन एंडर

1
लोगों को उनके कोड का परीक्षण करने के लिए: कृपया अपनी टिप्पणी (ओं) को उन्हें सबमिट करने के बाद हटा दें, इस चुनौती पर टिप्पणियों को अनावश्यक रूप से लंबे और स्पैम से रखने के लिए, और mods की नौकरियों को आसान बनाने के लिए।
मेघ

1
क्या कोई और नहीं सोचता है कि यह अशिक्षित है? जैसे, मैं कैसे करूँ? स्व-निहित होने का मतलब सवाल नहीं है? एपीआई डॉक्स का लिंक कहां है?
बिल्ली

4
@cat हालांकि मैं मानता हूं कि विशिष्टताओं में कोई कमी नहीं है, मुझे लगता है कि ऐसा इसलिए है क्योंकि अभी पूरी बात नहीं हुई है। यह भी ध्यान दें कि स्टैक एक्सचेंज एपीआई का उपयोग करना प्रश्न द्वारा आवश्यक नहीं है, इसलिए प्रश्न में एपीआई डॉक्स सहित बल्कि अति-उपयोगी होगा।
एलेक्स ए।

3
मौजूदा उत्तरों और टिप्पणियों को देखते हुए अस्पष्ट के रूप में बंद करने के लिए वोटिंग, यह मुझे लगता है कि इसकी आवश्यकता है) स्पष्ट इनपुट को स्पष्ट रूप से सफेद-सूची की अनुमति दी है (एक सादे पढ़ने के जवाब पर कोई इनपुट नहीं लग सकता है, लेकिन उनमें से कुछ जोरदार लग रहे हैं विवरण और लॉग इन करने के लिए उपयोगकर्ता नाम और पासवर्ड का उपयोग करने के लिए निहित आवश्यकता को दरकिनार करना; b) " यू और पी के रूप में आप अपने उपयोगकर्ता नाम और पासवर्ड को छोड़ सकते हैं , यह स्पष्ट करने के लिए क्रमशः " (जो कि मैं हमें "यू" और "पी" हार्डकोड को बताने के रूप में व्याख्या करूंगा, लेकिन दूसरों ने स्पष्ट रूप से अलग तरह से व्याख्या की है)।
पीटर टेलर

जवाबों:


11

JQuery के साथ जावास्क्रिप्ट, 127 बाइट्स

$.post("//codegolf.stackexchange.com/posts/84546/comments",{comment:"12345678901‌​23456",fkey:StackExchange.options.user.fkey})

कुछ बाइट्स के लिए इस्माईल मिगुएल और nicael को धन्यवाद।

fkeyपैरामीटर अपने खाते में अद्वितीय है, और एक StackExchange पेज खुला के साथ अपने ब्राउज़र के स्थानीय संग्रहण सामग्री का परीक्षण करके पाया जा सकता है। यह कोड एक ब्राउज़र में खुला StackExchange सत्र मौजूद होना चाहिए। यह स्वचालित रूप fkeyसे ब्राउज़र के स्थानीय भंडारण से पैरामीटर को लोड करता है (इस सबमिशन के पिछले संस्करणों को मैन्युअल रूप से दर्ज करने की आवश्यकता है)।

दुर्भाग्य से, ppcg.lolURL का उपयोग नहीं किया जा सकता है, क्योंकि यह POST अनुरोधों को पास नहीं करता है।

मजेदार तथ्य: यदि आप उचित fkeyमूल्य के बिना इस कोड को चलाने का प्रयास करते हैं , तो आपको HTTP 418 प्रतिसाद मिलता है :

चायदानी

fkeyChrome में मान कैसे प्राप्त करें, इसका उदाहरण :

fkey

जाहिर है विंटरबैश सामान अभी भी संग्रहीत किया जा रहा है। साफ।

संदर्भ के लिए, वेनिला जावास्क्रिप्ट में एक ही चीज 314 बाइट्स होगी (कुछ बाइट्स के लिए फिर से इस्माइल मिगुएल और निकेल को धन्यवाद):

with(new XMLHttpRequest()){
open("POST","//codegolf.stackexchange.com/posts/84546/comments",1)
setRequestHeader("Content-type","application/x-www-form-urlencoded")
setRequestHeader("Content-length",62)
setRequestHeader("Connection","close")
send("comment=1234567890123456&fkey="+StackExchange.options.user.fkey}))}

मैं बस यही लिखने वाला था। कृपया एक स्टैक स्निपेट जोड़ें।
NoOneIsHere

मुझे पसंद है कि आप सेलेनियम का उपयोग करने के बजाय साइट तक पहुंचने के अनुरोध का उपयोग कैसे करते हैं!
मेकक्राफ्ट

1
@NoOneIsHere एक स्टैक स्निपेट संभव नहीं है, क्योंकि वे सैंडबॉक्स चलाते हैं, ब्राउज़र के कुकी / सत्र डेटा तक पहुंच के बिना। इसके अतिरिक्त, मैं निश्चित नहीं हूं कि स्टैक स्निपेट्स भी POST अनुरोधों को बिल्कुल अनुमति देते हैं।
Mego

3
@IsmaelMiguel गलती से कोड में एक अक्षर पर कैपिटलाइज़ेशन की कमी के लिए डाउनवोटिंग करना थोड़ा हास्यास्पद लगता है, लेकिन यह आपकी कॉल है। यह अब तय हो गया है।
Mego

2
एक मामूली टाइपो के कारण @IsmaelMiguel डाउनवोटिंग है।
Mego

14

सफारी के साथ AppleScript, 269 287 बाइट्स

tell application "Safari"
activate
tell window 1
set current tab to (make new tab with properties {URL:"http://codegolf.stackexchange.com/q/84546"})
delay 5
do JavaScript "$('a')[66].click();$('textarea')[0].val('1234567890123456');$('input')[5].click()" in current tab
end tell
end tell

इसका उपयोग करने के लिए आपको सफारी डेवलपर सेटिंग्स को सक्षम करने और फिर सक्षम करने की आवश्यकता है Allow JavaScript from Apple Events । मुझे यकीन नहीं है कि यह धोखा दे रहा है या मौजूदा किचेन + कुकीज़ का उपयोग नहीं करना है, लेकिन अच्छी तरह से।

मैं भी बस क्लिकों और कीस्ट्रोक्स को स्वचालित करके OSX के ऑटोमेटर में ऐसा करने में कामयाब रहा, हालांकि मुझे नहीं लगा कि यह चुनौती के विचार के लिए सही था


2
नमस्कार, और PPCG में आपका स्वागत है! यह भी खूब रही! वह धोखा नहीं है। आपको सभी जावास्क्रिप्ट उत्तरों के लिए JS को सक्षम करने की भी आवश्यकता है।
NoOneIsHere

PPCG में आपका स्वागत है! हालांकि यह निश्चित रूप से एक रचनात्मक जवाब है, यह स्व-निहित नहीं है, क्योंकि यह उपयोगकर्ता नाम और पासवर्ड को इनपुट के रूप में नहीं लेता है।
पैट्रिक रॉबर्ट्स

1
@ जवाब के लिए धन्यवाद। मैंने सिर्फ इस प्रश्न को संपादित किया है कि क्या आप URL शॉर्टर्स का उपयोग नहीं कर सकते हैं?
मेकक्राफ्ट

1
यह काम नहीं करता है ... मेरा मतलब है, यह ध्वज लिंक पर क्लिक करता है, टिप्पणी लिंक नहीं।
निकेल

1
ओपी ने URL शॉर्टर्स को अस्वीकार करने की चुनौती को संशोधित किया, जो इस उत्तर को अमान्य करता है जब तक कि आप pgg.lol को codegolf.stackexchange.com के लिए स्वैप न करें।
एलेक्स ए।

7

सेलेनियम वेबड्राइवर के साथ पायथन 3.5, 485 427 469 461 449 414 403 बाइट्स:

from selenium.webdriver import*;import time;D=Chrome();I=lambda k:D.find_element_by_name(k);C='comment';D.get('http://www.codegolf.stackexchange.com/users/login');I('email').send_keys(U);Z=I('password');Z.send_keys(P);Z.submit();D.get('http://www.codegolf.stackexchange.com/questions/84546');D.find_element_by_link_text('add a '+C).click();E=I(C);E.send_keys('1234567890123456');time.sleep(1);E.submit()

एक पूर्ण कार्यक्रम एक साधारण पायथन सेलेनियम वेब ड्राइवर समाधान का उपयोग करता है। Chrome में काम करता है, हालाँकि इसे काम करने के लिए ChromeDriver स्थापित है। नाम बदलकर Uऔर Pउपयोगकर्ता के स्टैक एक्सचेंज ईमेल और पासवर्ड द्वारा क्रमशः काम करता है। हालाँकि, अगर क्रोमड्राइवर स्थापित करने में कोई समस्या है, तो यहां एक फायरफॉक्स समाधान है जो उपरोक्त समाधान के समान सटीक तरीके से निष्पादित होता है और इसे किसी भी ड्राइवर की आवश्यकता नहीं होती है, हालांकि वर्तमान में यह 1 बाइट 414 404 बाइट्स में लंबा है :

from selenium.webdriver import*;import time;D=Firefox();I=lambda k:D.find_element_by_name(k);C='comment';D.get('http://www.codegolf.stackexchange.com/users/login');I('email').send_keys(U);Z=I('password');Z.send_keys(P);Z.submit();D.get('http://www.codegolf.stackexchange.com/questions/84546');D.find_element_by_link_text('add a '+C).click();E=I(C);E.send_keys('1234567890123456');time.sleep(1);E.submit()

इसके अलावा, यदि कोई फ़ंक्शन चाहता है, तो यहां एक अनाम लंबो फ़ंक्शन का उपयोग करके एक समाधान है, वर्तमान में 513 455 497 489 477 449 431 बाइट्स और ब्राउज़र के रूप में क्रोम का उपयोग कर रहा है।

lambda U,P:exec("from selenium.webdriver import*;import time;D=Chrome();I=lambda k:D.find_element_by_name(k);C='comment';D.get('http://www.codegolf.stackexchange.com/users/login');I('email').send_keys(U);Z=I('password');Z.send_keys(P);Z.submit();D.get('http://www.codegolf.stackexchange.com/questions/84546');D.find_element_by_link_text('add a '+C).click();E=I(C);E.send_keys('1234567890123456');time.sleep(1);E.submit()",locals())

हालाँकि, यदि फिर से, क्रोमड्राइवर के बारे में कोई समस्या है, तो यहाँ एक ही प्रकार का समाधान है, लेकिन इस बार फ़ायरफ़ॉक्स का उपयोग करते हुए, वर्तमान में 442 432 बाइट्स पर खड़ा है :

lambda U,P:exec("from selenium.webdriver import*;import time;D=Firefox();I=lambda k:D.find_element_by_name(k);C='comment';D.get('http://www.codegolf.stackexchange.com/users/login');I('email').send_keys(U);Z=I('password');Z.send_keys(P);Z.submit();D.get('http://www.codegolf.stackexchange.com/questions/84546');D.find_element_by_link_text('add a '+C).click();E=I(C);E.send_keys('1234567890123456');time.sleep(1);E.submit()",locals())

आप इन लैंबडा फंक्शन्स को केवल फंक्शन का नाम बदलकर कुछ भी मान्य करते हैं और फिर एक सामान्य फंक्शन की तरह अपने ईमेल और पासवर्ड से कॉल करते हैं। उदाहरण के लिए, यदि फ़ंक्शन का नाम था H, तो आप इसे पसंद करेंगे H(Email, Password)


मुझे सेलेनियम वेबड्राइवर से परिचित कराने के लिए बहुत-बहुत धन्यवाद।
माल्टीसेन

@ माल्टनेस कोई समस्या नहीं है। :)
आर। कप

Chromeसे छोटा है Firefox?
R

@ E @s itIʀᴋ खैर, मैं इसे पहले वेबड्राइवर के साथ काम नहीं कर सका। मैं अंत में हालांकि है, और मेरे समाधान अब 11 बाइट्स छोटा है! : D
R। कप

2

आईओएस पर स्विफ्ट 2.2, 380 बाइट्स

let r = NSMutableURLRequest(URL:NSURL(string:"http://codegolf.stackexchange.com/posts/84546/comments")!)
r.HTTPMethod = "POST"
r.HTTPBody = try!NSJSONSerialization.dataWithJSONObject(["comment":"1234567890123456","fkey":UIWebView().stringByEvaluatingJavaScriptFromString("localstorage.getItem('se:fkey')")!],options:[])
NSURLSession.sharedSession().dataTaskWithRequest(r).resume()

मान लें कि उपयोगकर्ता सफारी के साथ कोड गोल्फ में लॉग इन है और कुकीज़ सक्षम है। यह भी माना जाता है कि UIKit को आयातित और उपलब्ध है। JSON सीरियलाइज़ेशन कोको में इतना वर्बोज़ है ... इसे स्विफ्ट 3 समाधान और वैकल्पिक रूप से macOS / लिनक्स टेस्टेबल उत्तर के साथ अपडेट कर सकते हैं।


6
stringByEvaluatingJavaScriptFromStringशानदार
बिल्ली


2
मैं अभी नाराज़ हूं। मुझे नहीं लगा कि ओबीजैक्टिव-सी से नफरत करना संभव था, जितना मैंने किया था ...
बिल्ली

0

सेलेनियम वेबड्राइवर के साथ जावा 8, 684 बाइट्स:

import java.util.*;import org.openqa.selenium.*;import org.openqa.selenium.firefox.*;class Leave_a_Comment_PPCG_Challenge_Golfed_Version_1{static void Y(String U,String P){WebDriver D=new FirefoxDriver();D.get("http://www.codegolf.stackexchange.com/users/login");D.findElement(By.name("email")).sendKeys(U);WebElement Z=D.findElement(By.name("password"));Z.sendKeys(P);Z.submit();D.get("http://www.codegolf.stackexchange.com/questions/84546");D.findElement(By.linkText("add a comment")).click();WebElement V=D.findElement(By.name("comment"));V.sendKeys("1234567890123456");D.findElement(By.xpath("//input[@value='Add Comment']")).click();}public static void main(String[]a){Scanner I=new Scanner(System.in);Y(I.next(),I.next());}}

पायथन में मेरे दूसरे पूर्ण कार्यक्रम उत्तर के जावा 8 में एक सीधा अनुकूलन । फ़ायरफ़ॉक्स में पूरी तरह से काम करता है और कार्यक्रम शुरू होने पर तुरंत अंतरिक्ष से अलग ईमेल और पासवर्ड इनपुट के लिए पूछता है। दूसरे शब्दों में, इनपुट उस प्रारूप में है Email Passwordजहां दोनों के बीच की जगह की जरूरत होती है।


आपके पास यहां मौजूद कोड 684, haha
Poke
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.