% S के बजाय% s के साथ रिक्त स्थान से बचने के लिए% s को मजबूर करना


9

मैं Google Chrome से metacritic.com के लिए खोज शॉर्टकट के रूप में mc का उपयोग करना चाहूंगा। मैंने शॉर्टकट के लिए निम्न खोज URL सेट किया है:

http://metacritic.com/search/all/%s/results

दुर्भाग्य से, जब मैं निम्नानुसार पेट्रीशियन iii की खोज करता हूं

mc patrcian iii

क्रोम इस क्वेरी का उत्पादन करता है, जो मेटाक्रिटिक गलत अर्थों में असंबंधित परिणामों के बेकार सेट का उत्पादन करता है:

http://www.metacritic.com/search/all/patrician%20iii/results

मेटाक्रिटिक इस प्रश्न को पसंद करता है, जिससे मुझे वह परिणाम मिल रहा है जिसकी मुझे तलाश थी:

http://www.metacritic.com/search/all/patrician+iii/results

मैं URL एन्कोड किए गए रिक्त स्थान के बजाय Chrome को प्लस प्रतीकों का उपयोग करने के लिए कैसे बाध्य कर सकता हूं?


(IE आपको कई अलग-अलग लोगों के लिए उपयोग किए जाने वाले एस्केप चरित्र का चयन करने की अनुमति देता है। क्रोम :-|
देव

जवाबों:


4

हालांकि थोड़ा कच्चा है, आप एक सरल क्रोम एक्सटेंशन बना सकते हैं जो मेटाक्रिटिक (या यदि आप चाहते हैं तो अन्य साइटों) के लिए यूआरएल को समायोजित करता है

यहाँ मैं मेटाक्रिटिक खोज URL प्रतिस्थापन एक्सटेंशन के लिए उपयोग किया गया कोड है:

manifest.json:

{
    "content_scripts": [ {
    "include_globs": [ "http://www.metacritic.com/search/*%20*" ],
    "js": [ "script.js" ],
        "matches": [ "http://*/*", "https://*/*" ],
        "run_at": "document_start"
    } ],
    "converted_from_user_script": true,
    "description": "Replaces '%20' in metacritic search request to '+'",
    "name": "Metacritic search replacer",
    "version": "0.1"
}

script.js:

window.location = window.location.href.replace(/%20/g, "+");

चूंकि मेरे पास अपने एक्सटेंशन को अपलोड करने के लिए वास्तव में एक विश्वसनीय स्थान नहीं है, इसलिए इन दो फ़ाइलों का उपयोग करके क्रोम एक्सटेंशन बनाने के निर्देश हैं:

सबसे पहले, दो फाइलों को किसी फ़ोल्डर में डालें और क्रोम: // एक्सटेंशन पर ब्राउज़ करें। सुनिश्चित करें कि डेवलपर मोड सक्रिय है (इसे सक्षम करने के लिए पृष्ठ के शीर्ष दाईं ओर देखें)। यहां आप 'पैक एक्सटेंशन ..' का चयन कर सकते हैं, जो आपसे उस फ़ोल्डर के लिए पूछता है जहां आपकी स्क्रिप्ट रहती है। एक बार जब आप इस फ़ोल्डर का चयन कर लेते हैं, तो एक्सटेंशन बन जाएगा और आप इसे इंस्टॉल करने के लिए बस क्रोम में ड्रैग और ड्रॉप कर सकते हैं। यदि सब कुछ योजना के अनुसार हुआ, तो स्क्रिप्ट '% 20' से '+' वर्णों के लिए मेटाक्रिटिक खोज अनुरोध के लिए URL को फिर से लिखेगी।

अब, आप http://metacritic.com/search/all/%s/resultsइस खोज के शॉर्टकट का उपयोग करने के लिए Chrome में ही खोज इंजन url के रूप में उपयोग कर सकते हैं ।

उम्मीद है की यह मदद करेगा.. ;)


यह वास्तव में अच्छा लग रहा है। आप इसे GitHub या कुछ और पर अपलोड कर सकते हैं ।
21

यहाँ विस्तार (.crx) और स्रोत है: लिंक
JiriB

5

आपको खोज की REST शैली का उपयोग करने की आवश्यकता नहीं है, लेकिन इसके बजाय सामान्य HTTP GET मापदंडों का उपयोग कर सकते हैं:

http://www.metacritic.com/search/all/results?search_term=test+query

तो आपके मामले में यह होगा:

http://www.metacritic.com/search/all/results?search_term=%s

दुर्भाग्य से, यह मेटास्रिक (?) के साथ काम नहीं करता है।

सबसे अच्छा मुझे मिल सकता है निम्नलिखित खोज समारोह, हालांकि यह वास्तव में किसी कारण के लिए पुनर्निर्देशित नहीं करता है:

data:text/html;charset=utf-8,<script>var s = "%s"; s = s.replace("%20", "+"); var url = "http://www.metacritic.com/search/all/" + s + "/results"; window.location = url;</script>

पृष्ठभूमि की जानकारी:

क्रोम स्थिति के आधार पर भेजे गए मापदंडों को एन्कोड करता है, अर्थात यदि URL के भीतर या GET पैरामीटर के रूप में। URL के भीतर किसी स्थान को परिवर्तित करने के लिए समझ में आता है %20, जबकि एक पैरामीटर में +इसका उपयोग किया जाता है।

दुर्भाग्य से, वे इस व्यवहार को बदलने के लिए तैयार नहीं हैं , इसलिए मेरा अनुमान है कि जावास्क्रिप्ट की एक सरल रेखा इसे ठीक कर सकती है। मैं इस पर गौर करूंगा।


क्या तुमने कोशिश की? पेट्रीशियन के लिए काम नहीं करता है iii।
शेल्डन

वास्तव में बहुत सारे सिस्टम HTTP जीईटी अनुरोधों के लिए पथ नामों को मैप करने के लिए HTTP रीराइट का उपयोग करते हैं।
मजेंको

@sheldonh दिलचस्प है क्योंकि खोज शब्द सही ढंग से डाला गया है, मैं इसे देखूंगा।
slhck

@slhck हाँ, आप वास्तव में क्या कर रहे हैं -शो-वर्क। आपके समय और ध्यान के लिए धन्यवाद।
शेल्डन

@sheldonh मुझे एक विधि मिली और मेरी पोस्ट को संपादित किया, दुर्भाग्य से क्रोम अभी तक पुनर्निर्देशित नहीं हुआ है, लेकिन हम एक समाधान की दिशा में एक कदम आगे हैं।
slhck

3

जैसा कि उनके उत्तर में स्लॉक द्वारा बताया गया है, क्रोम केवल% s का समर्थन करता है, और "बुद्धिमानी से" इस बात पर जोर देता है कि क्या प्लस प्रतीकों का उपयोग करना है या %20रिक्त स्थान से बचना है ( क्रोमियम बग 78429 देखें )।

मैं (metacritic.com) के साथ जिस विशेष परीक्षण के मामले में काम कर रहा हूं, वह बहुत सारे हुप्स को उनके रेस्टफुल सर्च इंटरफेस के साथ समवर्ती रूप से छलांग लगाने के लिए लगाता है।

इसलिए, एक काम के रूप में, मैं केवल app.metacritic.com की विरासत इंटरफ़ेस का उपयोग करने के लिए चुना गया:

http://apps.metacritic.com/search/process?tfs=game_title&sb=0&game_platform=PC&­ts=%s

अगर यह उपलब्ध नहीं था, तो मैंने metacritic.com से संपर्क किया, उन्हें क्रोमियम बग में भेजा, और दया की भीख मांगी। :-)


जाहिर तौर पर इसने काम करना बंद कर दिया है। :-(
ए। डोंडा

1

मैं न तो .crx या .js ठीक से स्थापित करने के लिए मिल सकता है (शायद यह मेरी गलती है)।

मैं इसे एक ग्रिसेकमकी स्क्रिप्ट पर भरोसा करके काम करवाने में कामयाब रहा (मैं शख्सियत का उपयोग करता हूं कि टेम्परमॉन्की google chrome एक्सटेंशन का इस्तेमाल ग्रिसेमोनी स्क्रिप्ट को संभालने के लिए करता हूं)।

एक बार टैम्परमॉन्की में मैं एक नई स्क्रिप्ट बनाता हूं और निम्नलिखित पेस्ट करता हूं (और यह काम करता है! एक बार फिर, जिरीबी के लिए एक बड़ा संकेत, जैसा कि मैंने अभी उनके निष्कर्षों को कॉपी / पेस्ट किया है):

// ==UserScript==
// @name         Google-Chrome-URL-Replacer-Extension (Metacritic)
// @namespace    https://github.com/FjearJiri/Google-Chrome-URL-Replacer-Extension/
// @version      1.0
// @description  Replaces %20 with + in URLs in order to build valid URLS for search engine shortcuts
// @include      http://www.metacritic.com/search/*%20*
// @copyright    2011+, FjearJiri ('ported' to greasemonkey script by zifnab)
// ==/UserScript==
// http://superuser.com/questions/281934/forcing-s-to-escape-spaces-with-plus-instead-of-percent-twenty
window.location = window.location.href.replace(/%20/g, "+");

1

मुझे इसी बात से कठिनाई हो रही थी, और मुझे यह पृष्ठ मिला। दुर्भाग्य से उत्तर या तो बहुत जटिल थे या, जैसे विरासत खोज विचार, काम नहीं किया, और फिर मुझे अचानक याद आया कि मैं मेटाक्रिटिक के साथ क्या करता था, जो कि इसे Google के साथ खोजना था क्योंकि मेटाक्रिटिक्स का खोज इंजन बहुत खराब था (अभी भी है) , वास्तव में)। इसलिए मैंने जो कुछ किया वह एक Google खोज थी और मेरी मेटाक्रिटिक खोज बना:

https://www.google.com/search?gcx=w&ix=c2&sourceid=chrome&ie=UTF-8&q=site%3Ametacritic.com+%s

जाहिर है कि यह आदर्श नहीं है, इसमें आपको मेटाक्रिटिक का अच्छा खोज परिणाम पृष्ठ नहीं मिलता है, लेकिन यह उपयोगी परिणाम देता है। मैंने चैनल के विशिष्ट संस्करण भी बनाए; उदाहरण के लिए, यदि मैं टीवी शो खोजना चाहता हूं तो मैं उसी इंजन का उपयोग करता हूं जिसके साथ "/ tv /" जोड़ा गया है।


1

संपादित करें: मैंने Chrome स्टोर में यह मूल एक्सटेंशन जोड़ा है, मैंने आइकन भी जोड़े हैं लेकिन अन्यथा कोड को नहीं बदला है। Yay अब Chrome बस अपना काम कर सकता है और मैं इसे अपने डाउनलोड फ़ोल्डर से हटा सकता हूं! लिंक है: मेटाक्रिटिक खोज फिक्सर

मूल पोस्ट : मैंने JiriB के एक्सटेंशन कोड को अपडेट किया है इसलिए यह क्रोम में फिर से काम करता है! यह वास्तव में सिर्फ एक अतिरिक्त लाइन की जरूरत थी। मैंने पहले कभी जीथब का उपयोग नहीं किया है, लेकिन मैंने उनकी परियोजना को रोक दिया और एक पुल अनुरोध प्रस्तुत किया।

manifest.json:

{
"content_scripts": [ {
"include_globs": [ "http://www.metacritic.com/search/*%20*" ],
"js": [ "script.js" ],
    "matches": [ "http://*/*", "https://*/*" ],
    "run_at": "document_start"
} ],
"converted_from_user_script": true,
"description": "Replaces '%20' in metacritic search request to '+'",
"name": "Metacritic search fixer",
"manifest_version": 2,
"version": "0.2.2"
}

script.js:

window.location = window.location.href.replace(/%20/g, "+");

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