Skip to content

Latest commit

 

History

History
555 lines (373 loc) · 48.5 KB

File metadata and controls

555 lines (373 loc) · 48.5 KB

mclocks

कई समय क्षेत्रों के लिए डेस्कटॉप घड़ी एप्लिकेशन🕒🌍🕕

screenshot

घड़ी संबंधित सुविधाएँ:

  • 🕐 कई समय क्षेत्रों के लिए टेक्स्ट घड़ी
  • ⏱️ टाइमर
  • ⏳ काउंटडाउन टाइमर
  • 🔄 Epoch समय और दिनांक-समय कनवर्टर

समय किसी की प्रतीक्षा नहीं करता:

  • 📝 स्टिकी नोट

एक डेवलपर कभी बिना घड़ी के नहीं रहता:

  • 🔀 सरल टेक्स्ट कनवर्टर
    • जैसे आसानी से SQL IN क्लॉज़ बनाना
  • 🌐 वेब सर्वर
    • स्टैटिक फ़ाइलें सर्व करता है
      • Markdown को रिच तरीके से रेंडर करता है
    • ड्रैग-एंड-ड्रॉप आधारित कंटेंट व्यूअर
    • रिक्वेस्ट और रिस्पॉन्स डंप सर्वर
    • डीबगिंग के लिए स्लो एंडपॉइंट
    • GitHub URL से अपने एडिटर में फ़ाइलें खोलें

🔔 नोट: mclocks को इंटरनेट कनेक्शन की आवश्यकता नहीं है — सब कुछ 100% स्थानीय रूप से चलता है।

📦 डाउनलोड

https://github.com/bayashi/mclocks/releases से डाउनलोड करें

Windows

Windows के लिए, आप इंस्टॉलर .msi फ़ाइल या एक्ज़ीक्यूटेबल .exe फ़ाइल प्राप्त कर सकते हैं।

macOS

macOS के लिए, आप इंस्टॉल करने के लिए .dmg फ़ाइल प्राप्त कर सकते हैं।

(इस दस्तावेज़ में शॉर्टकट कीज़ Windows OS के लिए हैं। यदि आप macOS का उपयोग कर रहे हैं, तो कृपया उन्हें उचित रूप से समझें, जैसे Ctrl को Ctrl + Command और Alt को Option से बदलें।)

⚙️ config.json

config.json फ़ाइल आपको अपनी पसंद के अनुसार घड़ियों को कॉन्फ़िगर करने की अनुमति देती है।

config.json फ़ाइल निम्नलिखित डायरेक्टरी में स्थित होनी चाहिए:

  • Windows: C:\Users\{USER}\AppData\Roaming\com.bayashi.mclocks\
  • Mac: /Users/{USER}/Library/Application Support/com.bayashi.mclocks/

जब आप mclocks शुरू करें, तो अपनी config.json फ़ाइल को संपादित करने के लिए Ctrl + o दबाएँ।

config.json का उदाहरण

config.json फ़ाइल को नीचे दिखाए अनुसार JSON प्रारूप में लिखा जाना चाहिए।

{
  "clocks": [
    { "name": "UTC", "timezone": "UTC" }
  ],
  "format": "MM-DD ddd HH:mm",
  "locale": "en",
  "color": "#fff",
  "font": "Courier, monospace",
  "size": 14,
  "margin": "1.65em",
  "forefront": false
}

🔧 config.json के फ़ील्ड

clocks

clocks फ़ील्ड ऑब्जेक्ट्स का एक ऐरे है, जिसमें प्रत्येक में name और timezone प्रॉपर्टीज़ होती हैं। दोनों स्ट्रिंग होनी चाहिए। डिफ़ॉल्ट रूप से दोनों UTC हैं।

  • name एक लेबल है जो घड़ी के लिए प्रदर्शित किया जाएगा।
  • समय क्षेत्र चुनने के लिए, कृपया इस समय क्षेत्रों की सूची को देखें।

तीन समय क्षेत्रों के लिए clocks ऐरे का एक उदाहरण यहाँ दिया गया है।

{
  "clocks": [
    { "name": "Tokyo", "timezone": "Asia/Tokyo" },
    { "name": "UTC", "timezone": "UTC" },
    { "name": "SF", "timezone": "America/Los_Angeles" }
  ],
  "format": "MM-DD ddd HH:mm",
  ...snip...
}

format

स्ट्रिंग: MM-DD ddd HH:mm

format फ़ील्ड घड़ी प्रदर्शित करने के लिए उपयोग की जाने वाली दिनांक-समय फ़ॉर्मेट स्ट्रिंग है। कस्टम दिनांक-समय फ़ॉर्मेट बनाने के लिए, कृपया यह फ़ॉर्मेटिंग गाइड देखें।

format2

स्ट्रिंग: ""

format2 फ़ील्ड format के समान है। ये Ctrl + f कुंजी से एक-दूसरे से स्विच होती हैं। format2 एक वैकल्पिक फ़ील्ड है।

locale

स्ट्रिंग: en

locale फ़ील्ड दिनांक-समय प्रदर्शित करने के लिए भाषा सेटिंग्स निर्धारित करती है। आप समर्थित लोकेल की सूची यहाँ पा सकते हैं।

color

स्ट्रिंग: #fff

color फ़ील्ड दिनांक-समय टेक्स्ट का रंग परिभाषित करती है। आप नामित रंग, RGB हेक्स मान, RGB मान (जैसे, RGB(255, 0, 0)), या कोई भी वैध CSS रंग मान उपयोग कर सकते हैं।

font

स्ट्रिंग: Courier, monospace

font दिनांक-समय प्रदर्शित करने के लिए फ़ॉन्ट नाम है। यह मोनोस्पेस्ड फ़ॉन्ट होना चाहिए। यदि आप वेरिएबल-विड्थ फ़ॉन्ट सेट करते हैं, तो आपकी mclocks में अवांछित कंपन प्रभाव हो सकता है।

size

संख्या | स्ट्रिंग: 14

size दिनांक-समय के कैरेक्टर का आकार है, पिक्सेल में। इसे इकाई सहित स्ट्रिंग के रूप में भी निर्दिष्ट किया जा सकता है (जैसे, "125%", "1.5em")।

margin

स्ट्रिंग: 1.65em

margin फ़ील्ड घड़ियों के बीच का अंतर निर्धारित करती है।

forefront

बूलियन: false

यदि forefront फ़ील्ड को true पर सेट किया जाता है, तो mclocks एप्लिकेशन हमेशा अन्य एप्लिकेशन विंडो के ऊपर प्रदर्शित होगा।

⏳ काउंटडाउन घड़ी

नीचे दिखाए अनुसार clock की कॉन्फ़िगरेशन सेट करने पर, यह दिए गए target दिनांक-समय तक काउंटडाउन घड़ी के रूप में प्रदर्शित होगी।

"clocks": [
	{
		"countdown": "WAC Tokyo D-%D %h:%m:%s",
		"target": "2025-09-13",
		"timezone": "Asia/Tokyo"
	}
],

उपरोक्त काउंटडाउन clock इस प्रकार प्रदर्शित होगी:

WAC Tokyo D-159 12:34:56

यह दर्शाता है कि 13 सितंबर, 2025 तक 159 दिन, 12 घंटे, 34 मिनट और 56 सेकंड शेष हैं।

काउंटडाउन फ़ॉर्मेट वर्ब्स

countdown फ़ील्ड टेक्स्ट नीचे दिए गए टेम्प्लेट वर्ब्स स्वीकार करता है:

  • %TG: लक्ष्य दिनांक-समय स्ट्रिंग
  • %D: लक्ष्य दिनांक-समय तक शेष दिनों की संख्या
  • %H: लक्ष्य दिनांक-समय तक शेष समय घंटों में
  • %h: शेष समय का घंटा (hh) भाग (hh:mm:ss)
  • %M: लक्ष्य दिनांक-समय तक शेष समय मिनटों में
  • %m: शेष समय का मिनट (mm) भाग (hh:mm:ss)
  • %S: लक्ष्य दिनांक-समय तक शेष समय सेकंडों में
  • %s: शेष समय का सेकंड (ss) भाग (hh:mm:ss)

⏱️ सरल टाइमर

simple timer

mclocks ऐप विंडो पर क्लिक करें, फिर 1-मिनट टाइमर शुरू करने के लिए Ctrl + 1 कुंजी दबाएँ। 10-मिनट टाइमर शुरू करने के लिए Ctrl + Alt + 1 कुंजी दबाएँ। अन्य नंबर कुंजियाँ भी इसी तरह काम करती हैं। एक साथ 5 टाइमर तक शुरू किए जा सकते हैं।

टाइमर को रोकने / फिर से शुरू करने के लिए Ctrl + p

सबसे पुराना टाइमर हटाने के लिए Ctrl + 0। सबसे नया टाइमर हटाने के लिए Ctrl + Alt + 0

🔔 नोट: काउंटडाउन घड़ी और सरल टाइमर पूरा होने पर डिफ़ॉल्ट रूप से सूचना भेजते हैं। यदि आपको सूचनाओं की आवश्यकता नहीं है, तो config.json में withoutNotification: true सेट करें।

🔢 Epoch समय प्रदर्शित करें

epoch-time

mclocks ऐप विंडो पर क्लिक करें, फिर Epoch समय का प्रदर्शन टॉगल करने के लिए Ctrl + e कुंजी दबाएँ।

🔄 दिनांक-समय और Epoch समय के बीच रूपांतरण

mclocks ऐप विंडो पर क्लिक करें, फिर एक दिनांक-समय या Epoch समय पेस्ट करें, तो रूपांतरण परिणाम प्रदर्शित करने के लिए एक डायलॉग दिखाई देगा। और परिणामों को क्लिपबोर्ड पर कॉपी करना संभव है। यदि आप कॉपी नहीं करना चाहते, तो डायलॉग बंद करने के लिए [No] दबाएँ।

Ctrl + v से पेस्ट करते समय, मान (Epoch समय) को सेकंड के रूप में माना जाता है। Ctrl + Alt + v से मिलीसेकंड, Ctrl + Alt + Shift + V से माइक्रोसेकंड, और Ctrl + Alt + Shift + N + V से नैनोसेकंड के रूप में रूपांतरित किया जाता है।

convert-from-epoch-to-datetime

convert-from-datetime-to-epoch

जब पेस्ट किए गए दिनांक-समय मानों में समय क्षेत्र की जानकारी शामिल नहीं होती, तो उन्हें डिफ़ॉल्ट रूप से स्थानीय समय क्षेत्र के रूप में माना जाता है। उन्हें किसी विशिष्ट समय क्षेत्र के रूप में संभालने के लिए, convtz विकल्प में समय क्षेत्र सेट करें।

"convtz": "UTC"

🔀 टेक्स्ट रूपांतरण सुविधा

mclocks ऐप विंडो पर क्लिक करें, फिर क्लिपबोर्ड टेक्स्ट को प्रोसेस करने और एडिटर में खोलने के लिए निम्नलिखित कीबोर्ड शॉर्टकट का उपयोग करें:

  • Ctrl + i: क्लिपबोर्ड की प्रत्येक पंक्ति को डबल कोट्स में लपेटता है और अंत में कॉमा जोड़ता है (अंतिम पंक्ति को छोड़कर)
  • Ctrl + Shift + i: प्रत्येक पंक्ति के अंत में कॉमा जोड़ता है (बिना कोट्स) INT सूची IN शर्त के लिए (अंतिम पंक्ति को छोड़कर)

खाली पंक्तियाँ सभी ऑपरेशनों में यथावत रखी जाती हैं।

(यह टेक्स्ट रूपांतरण सुविधा घड़ियों या समय से कोई संबंध नहीं रखती, लेकिन सॉफ़्टवेयर डेवलपर्स को यह उपयोगी लग सकती है! 😊)

⌨️ कीबोर्ड शॉर्टकट

सहायता दिखाएँ

F1 (Windows) या Cmd + Shift + / (macOS) से ब्राउज़र में सहायता पेज (यह README) खोलें

कॉन्फ़िगरेशन, डिस्प्ले फ़ॉर्मेट

शॉर्टकट विवरण
Ctrl + o एडिटर में config.json फ़ाइल खोलें
Ctrl + f format और format2 के बीच स्विच करें (यदि config.json में format2 परिभाषित है)
Ctrl + e या Ctrl + u Epoch समय का प्रदर्शन टॉगल करें

टाइमर

शॉर्टकट विवरण
Ctrl + 1 से Ctrl + 9 टाइमर शुरू करें (1 मिनट × नंबर कुंजी)
Ctrl + Alt + 1 से Ctrl + Alt + 9 टाइमर शुरू करें (10 मिनट × नंबर कुंजी)
Ctrl + p सभी टाइमर रोकें / फिर शुरू करें
Ctrl + 0 सबसे पुराना टाइमर (सबसे बाएँ) हटाएँ
Ctrl + Alt + 0 सबसे नया टाइमर (सबसे दाएँ) हटाएँ

स्टिकी नोट

शॉर्टकट विवरण
Ctrl + s क्लिपबोर्ड टेक्स्ट से नया स्टिकी नोट बनाएँ

क्लिपबोर्ड दिनांक-समय ऑपरेशन

शॉर्टकट विवरण
Ctrl + c वर्तमान mclocks टेक्स्ट को क्लिपबोर्ड पर कॉपी करें
Ctrl + v क्लिपबोर्ड सामग्री को रूपांतरित करें (Epoch समय सेकंड के रूप में, या दिनांक-समय)
Ctrl + Alt + v क्लिपबोर्ड सामग्री को रूपांतरित करें (Epoch समय मिलीसेकंड के रूप में)
Ctrl + Alt + Shift + V क्लिपबोर्ड सामग्री को रूपांतरित करें (Epoch समय माइक्रोसेकंड के रूप में)
Ctrl + Alt + Shift + N + V क्लिपबोर्ड सामग्री को रूपांतरित करें (Epoch समय नैनोसेकंड के रूप में)

टेक्स्ट रूपांतरण

शॉर्टकट विवरण
Ctrl + i क्लिपबोर्ड की प्रत्येक पंक्ति को डबल कोट्स में लपेटें, अंत में कॉमा जोड़ें और एडिटर में खोलें (अंतिम पंक्ति को छोड़कर)
Ctrl + Shift + i प्रत्येक पंक्ति के अंत में कॉमा जोड़ें (बिना कोट्स) INT सूची IN शर्त के लिए और एडिटर में खोलें (अंतिम पंक्ति को छोड़कर)

📝 स्टिकी नोट

mclocks ऐप विंडो पर क्लिक करें, फिर क्लिपबोर्ड टेक्स्ट से स्टिकी नोट बनाने के लिए Ctrl + s दबाएँ। क्लिपबोर्ड सामग्री के साथ एक छोटी फ़्लोटिंग विंडो खुलेगी।

प्रत्येक स्टिकी नोट में ये सुविधाएँ हैं:

  • टॉगल बटन ( / ): नोट को विस्तारित या संक्षिप्त करें। संक्षिप्त मोड में केवल एक पंक्ति दिखाई देती है।
  • कॉपी बटन (): नोट टेक्स्ट को क्लिपबोर्ड पर कॉपी करें।
  • अग्रभूमि बटन ( / ): नोट को अन्य विंडो के ऊपर रहने के लिए टॉगल करें। यह सेटिंग प्रत्येक स्टिकी नोट के लिए अलग से सहेजी जाती है।
  • बंद करें बटन (): स्टिकी नोट हटाएँ और उसकी विंडो बंद करें।
  • टेक्स्ट एरिया: नोट सामग्री को स्वतंत्र रूप से संपादित करें। परिवर्तन स्वचालित रूप से सहेजे जाते हैं।
  • रीसाइज़ हैंडल: विस्तारित होने पर नोट का आकार बदलने के लिए निचले-दाएँ कोने को ड्रैग करें।

स्टिकी नोट्स config.json से font, size, color, और forefront सेटिंग्स इनहेरिट करते हैं। अग्रभूमि सेटिंग को अग्रभूमि बटन का उपयोग करके प्रत्येक स्टिकी नोट के लिए ओवरराइड किया जा सकता है; यदि ओवरराइड नहीं किया जाता, तो config.json का मान उपयोग किया जाता है। उनकी स्थिति, आकार, खुली/बंद अवस्था, और अग्रभूमि ओवरराइड को संरक्षित किया जाता है, और mclocks के पुनः आरंभ होने पर सभी नोट्स स्वचालित रूप से पुनर्स्थापित होते हैं।

🔔 नोट: macOS पर, स्टिकी नोट विंडो की स्थिति केवल एप्लिकेशन बंद होने पर सहेजी जाती है। Windows पर, विंडो को स्थानांतरित या रीसाइज़ करते समय स्थिति स्वचालित रूप से सहेजी जाती है।

प्रत्येक स्टिकी नोट का अधिकतम टेक्स्ट आकार 128 KB है।

🌐 वेब सर्वर

mclocks एक अंतर्निहित वेब सर्वर के माध्यम से स्टैटिक फ़ाइलें सर्व कर सकता है। यह सुविधा आपको अपने कोड स्निपेट्स को ब्राउज़र में आसानी से देखने की अनुमति देती है। अपने config.json में web फ़ील्ड जोड़ें:

{
  "web": {
    "root": "/path/to/your/webroot",
    "dump": true,
    "slow": true,
    "status": true,
    "content": {
      "markdown": {
        "allowRawHTML": false
      }
    },
    "editor": {
      "reposDir": "/path/to/your/repos"
    }
  }
}
  • root: सर्व करने के लिए फ़ाइलों वाली डायरेक्टरी का पथ (आवश्यक)
  • port: सुनने के लिए पोर्ट नंबर (डिफ़ॉल्ट: 3030)
  • open_browser_at_start: यदि true पर सेट किया जाता है, तो mclocks शुरू होने पर डिफ़ॉल्ट ब्राउज़र में वेब सर्वर URL स्वचालित रूप से खुलता है (डिफ़ॉल्ट: false)
  • dump: यदि true पर सेट किया जाता है, तो रिक्वेस्ट विवरण JSON के रूप में लौटाने वाला /dump एंडपॉइंट सक्षम होता है (डिफ़ॉल्ट: false)
  • slow: यदि true पर सेट किया जाता है, तो रिस्पॉन्स में देरी करने वाला /slow एंडपॉइंट सक्षम होता है (डिफ़ॉल्ट: false)
  • status: यदि true पर सेट किया जाता है, तो मनमाने HTTP स्टेटस कोड लौटाने वाला /status/{code} एंडपॉइंट सक्षम होता है (डिफ़ॉल्ट: false)
  • content.markdown.allowRawHTML: यदि true पर सेट किया जाता है, तो Markdown रेंडरिंग में raw HTML की अनुमति देता है; यदि false है, तो Markdown में raw HTML को टेक्स्ट के रूप में escape किया जाता है (डिफ़ॉल्ट: false)
  • editor: यदि सेट किया जाता है और reposDir शामिल है, तो ब्राउज़र की GitHub URL से अपने एडिटर में स्थानीय फ़ाइलें खोलने वाला /editor एंडपॉइंट सक्षम होता है (डिफ़ॉल्ट: सेट नहीं)

यदि आपके config.json में web फ़ील्ड कॉन्फ़िगर किया गया है, तो mclocks लॉन्च होने पर वेब सर्वर स्वचालित रूप से शुरू हो जाता है। http://127.0.0.1:3030 पर फ़ाइलों तक पहुँचें। वेब सर्वर केवल 127.0.0.1 (localhost) पर सुनता है, इसलिए यह केवल आपकी स्थानीय मशीन से ही पहुँच योग्य है।

समर्थित फ़ाइल प्रकार

वेब सर्वर निम्नलिखित फ़ाइल प्रकारों का समर्थन करता है:

  • टेक्स्ट: html, css, js, json, md, txt
  • छवियाँ: png, jpg, jpeg, gif, svg, ico

ड्रैग-एंड-ड्रॉप आधारित कंटेंट व्यूअर

स्टैटिक फ़ाइल होस्टिंग के अलावा, वेब सर्वर में ड्रैग-एंड-ड्रॉप आधारित कंटेंट व्यूअर वर्कफ़्लो भी शामिल है: जब आप mclocks की घड़ी विंडो पर कोई फ़ाइल या डायरेक्टरी ड्रैग-एंड-ड्रॉप करते हैं, तो उसे अस्थायी लोकल URL के जरिए खोला और देखा जा सकता है। ये अस्थायी URL mclocks बंद होने पर हटा दिए जाते हैं।

/dump एंडपॉइंट

जब web कॉन्फ़िगरेशन में dump: true सेट किया जाता है, तो वेब सर्वर एक /dump एंडपॉइंट प्रदान करता है जो रिक्वेस्ट विवरण JSON के रूप में लौटाता है।

एंडपॉइंट निम्नलिखित सामग्री वाला JSON ऑब्जेक्ट लौटाता है:

  • method: HTTP मेथड (जैसे, "GET", "POST")
  • path: /dump/ के बाद का रिक्वेस्ट पथ (जैसे, /dump/test के लिए "/test")
  • query: की-वैल्यू ऑब्जेक्ट्स के ऐरे के रूप में क्वेरी पैरामीटर (जैसे, [{"key1": "value1"}, {"key2": "value2"}])
  • headers: की-वैल्यू ऑब्जेक्ट्स के ऐरे के रूप में रिक्वेस्ट हेडर (जैसे, [{"Content-Type": "application/json"}])
  • body: रिक्वेस्ट बॉडी स्ट्रिंग के रूप में (यदि मौजूद है)
  • parsed_body: यदि Content-Type JSON इंगित करता है तो पार्स किया गया JSON ऑब्जेक्ट, या पार्सिंग विफल होने पर त्रुटि संदेश स्ट्रिंग

http://127.0.0.1:3030/dump पर या /dump/ के अंतर्गत किसी भी पथ (जैसे, /dump/test?key=value) पर dump एंडपॉइंट तक पहुँचें।

/slow एंडपॉइंट

जब web कॉन्फ़िगरेशन में slow: true सेट किया जाता है, तो वेब सर्वर एक /slow एंडपॉइंट प्रदान करता है जो 200 OK लौटाने से पहले रिस्पॉन्स में देरी करता है।

यह एंडपॉइंट किसी भी HTTP मेथड (GET, POST, आदि) के माध्यम से पहुँच योग्य है और निम्नलिखित पथों का समर्थन करता है:

  • /slow: 30 सेकंड (डिफ़ॉल्ट) प्रतीक्षा करता है और 200 OK लौटाता है
  • /slow/120: 120 सेकंड (या कोई भी निर्दिष्ट सेकंड) प्रतीक्षा करता है और 200 OK लौटाता है

अधिकतम अनुमत मान 901 सेकंड (15 मिनट + 1 सेकंड) है। इस सीमा से अधिक रिक्वेस्ट 400 Bad Request त्रुटि लौटाती हैं।

यह एंडपॉइंट टाइमआउट व्यवहार, कनेक्शन हैंडलिंग, या धीमी नेटवर्क स्थितियों के अनुकरण के परीक्षण के लिए उपयोगी है।

यदि अमान्य सेकंड पैरामीटर प्रदान किया जाता है (जैसे, /slow/abc), तो एंडपॉइंट 400 Bad Request त्रुटि लौटाता है।

/status एंडपॉइंट

जब web कॉन्फ़िगरेशन में status: true सेट किया जाता है, तो वेब सर्वर एक /status/{code} एंडपॉइंट प्रदान करता है जो RFC मानकों में परिभाषित मनमाने HTTP स्टेटस कोड (100-599) लौटाता है।

एंडपॉइंट स्टेटस कोड और उसके संबंधित वाक्यांश के साथ एक सादा टेक्स्ट रिस्पॉन्स लौटाता है, HTTP विनिर्देश के अनुसार उचित हेडर के साथ।

उदाहरण:

  • http://127.0.0.1:3030/status/200 - 200 OK लौटाता है
  • http://127.0.0.1:3030/status/404 - 404 Not Found लौटाता है
  • http://127.0.0.1:3030/status/500 - 500 Internal Server Error लौटाता है
  • http://127.0.0.1:3030/status/418 - 418 I'm a teapot लौटाता है (विशेष संदेश के साथ)
  • http://127.0.0.1:3030/status/301 - 301 Moved Permanently लौटाता है (Location हेडर के साथ)

स्टेटस-विशिष्ट हेडर:

एंडपॉइंट विशिष्ट स्टेटस कोड के लिए स्वचालित रूप से उचित हेडर जोड़ता है:

  • 3xx रीडायरेक्शन (301, 302, 303, 305, 307, 308): Location हेडर जोड़ता है
  • 401 Unauthorized: WWW-Authenticate हेडर जोड़ता है
  • 405 Method Not Allowed: Allow हेडर जोड़ता है
  • 407 Proxy Authentication Required: Proxy-Authenticate हेडर जोड़ता है
  • 416 Range Not Satisfiable: Content-Range हेडर जोड़ता है
  • 426 Upgrade Required: Upgrade हेडर जोड़ता है
  • 429 Too Many Requests: Retry-After हेडर जोड़ता है (60 सेकंड)
  • 503 Service Unavailable: Retry-After हेडर जोड़ता है (60 सेकंड)
  • 511 Network Authentication Required: WWW-Authenticate हेडर जोड़ता है

रिस्पॉन्स बॉडी हैंडलिंग:

  • 204 No Content और 304 Not Modified: खाली रिस्पॉन्स बॉडी लौटाता है (HTTP विनिर्देश के अनुसार)
  • 418 I'm a teapot: मानक स्टेटस वाक्यांश के बजाय विशेष संदेश "I'm a teapot" लौटाता है
  • अन्य सभी स्टेटस कोड: {code} {phrase} प्रारूप में सादा टेक्स्ट लौटाता है (जैसे, "404 Not Found")

यह एंडपॉइंट यह परीक्षण करने के लिए उपयोगी है कि आपके एप्लिकेशन विभिन्न HTTP स्टेटस कोड, त्रुटि हैंडलिंग, रीडायरेक्ट, प्रमाणीकरण आवश्यकताओं और दर सीमित करने के परिदृश्यों को कैसे संभालते हैं।

/editor एंडपॉइंट

जब कॉन्फ़िगरेशन फ़ाइल में web.editor.reposDir सेट किया जाता है, तो वेब सर्वर एक /editor एंडपॉइंट प्रदान करता है जो आपको ब्राउज़र की GitHub URL से सीधे अपने एडिटर में स्थानीय फ़ाइलें खोलने की अनुमति देता है।

कॉन्फ़िगरेशन:

अपने web कॉन्फ़िगरेशन में निम्नलिखित जोड़ें:

{
  "web": {
    "root": "/path/to/your/webroot",
    "editor": {
      "reposDir": "~/repos",
      "includeHost": false,
      "command": "code",
      "args": ["-g", "{file}:{line}"]
    }
  }
}
  • reposDir: आपकी स्थानीय रिपॉज़िटरी डायरेक्टरी का पथ। होम डायरेक्टरी विस्तार के लिए ~ का समर्थन करता है (जैसे, macOS पर "~/repos" या Windows पर "C:/Users/username/repos")। यह डायरेक्टरी मौजूद होनी चाहिए।
  • includeHost: यदि true है, तो स्थानीय पथ रिज़ॉल्यूशन में मूल होस्ट को डायरेक्टरी के रूप में शामिल किया जाता है (जैसे, {reposDir}/{host}/{owner}/{repo}/...)। यदि false है, तो यह {reposDir}/{owner}/{repo}/... में रिज़ॉल्व होता है (डिफ़ॉल्ट: false)।
  • command: आपके एडिटर एक्ज़ीक्यूटेबल का कमांड नाम या पथ (डिफ़ॉल्ट: code)
  • args: आर्ग्युमेंट टेम्प्लेट ऐरे। {file} और {line} प्लेसहोल्डर का उपयोग करें। यदि URL में #L... मौजूद नहीं है, तो {line} 1 का उपयोग करता है।

यह कैसे काम करता है:

  1. जब आप /editor एंडपॉइंट के माध्यम से GitHub फ़ाइल URL तक पहुँचते हैं, तो यह GitHub पथ को स्थानीय फ़ाइल पथ में परिवर्तित करता है
  2. स्थानीय फ़ाइल पथ इस प्रकार बनाया जाता है: {reposDir}/{owner}/{repository_name}/{file_path}
  3. यदि फ़ाइल मौजूद है, तो यह कॉन्फ़िगर किए गए कमांड और आर्ग्युमेंट्स का उपयोग करके निर्दिष्ट लाइन नंबर पर आपके एडिटर में फ़ाइल खोलता है (डिफ़ॉल्ट: code -g {local_file_path}:{line_number})
  4. यदि फ़ाइल मौजूद नहीं है, तो रिपॉज़िटरी क्लोन करने के लिंक के साथ एक त्रुटि पेज प्रदर्शित होता है

बुकमार्कलेट:

GitHub फ़ाइलों को अपने स्थानीय एडिटर में तुरंत खोलने के लिए एक बुकमार्कलेट बनाएँ। 3030 को अपने कॉन्फ़िगर किए गए पोर्ट नंबर से बदलें:

javascript:(function(){var u=new URL(document.location.href);open('http://127.0.0.1:3030/editor/'+u.host+u.pathname+u.hash,'_blank');})()

लाइन नंबर समर्थन:

आप URL में हैश फ़्रैगमेंट का उपयोग करके लाइन नंबर निर्दिष्ट कर सकते हैं:

  • https://github.com/username/repo/blob/main/file.rs#L123 → लाइन 123 पर खुलता है

त्रुटि हैंडलिंग:

  • यदि फ़ाइल स्थानीय रूप से मौजूद नहीं है, तो टैब खुला रहता है और GitHub से रिपॉज़िटरी क्लोन करने के लिंक के साथ एक त्रुटि संदेश प्रदर्शित करता है
  • यदि फ़ाइल सफलतापूर्वक खोली जाती है, तो टैब स्वचालित रूप से बंद हो जाता है
  • यदि web.editor.reposDir कॉन्फ़िगर नहीं किया गया है या मौजूद नहीं है, तो /editor एंडपॉइंट सक्षम नहीं होता (और आपको 404 मिलेगा)

उदाहरण:

  1. आप GitHub पर एक फ़ाइल देख रहे हैं: https://github.com/bayashi/mclocks/blob/main/src/app.js#L42
  2. बुकमार्कलेट पर क्लिक करें या मैन्युअल रूप से नेविगेट करें: http://127.0.0.1:3030/editor/bayashi/mclocks/blob/main/src/app.js#L42
  3. यदि आपके स्थानीय में ~/repos/mclocks/src/app.js मौजूद है, तो VS Code इसे लाइन 42 पर खोलता है
  4. यदि फ़ाइल मौजूद नहीं है, तो क्लोनिंग के लिए https://github.com/bayashi/mclocks के लिंक के साथ एक त्रुटि पेज दिखाई देता है

🧠 mclocks MCP सर्वर

mclocks में एक MCP (Model Context Protocol) सर्वर शामिल है जो Cursor और Claude Desktop जैसे AI सहायकों को कई समय क्षेत्रों में "अभी क्या समय है?" का उत्तर देने और दिनांक-समय प्रारूपों और Epoch टाइमस्टैम्प के बीच रूपांतरण करने में सक्षम बनाता है। MCP सर्वर स्वचालित रूप से आपकी mclocks config.json का उपयोग करता है, इसलिए mclocks में आपके द्वारा कॉन्फ़िगर किए गए समय क्षेत्र AI के उत्तरों में परिलक्षित होते हैं।

पूर्वापेक्षाएँ

  • Node.js (v18 या बाद का)

यदि आपके पास Node.js नहीं है, तो इसे आधिकारिक वेबसाइट से इंस्टॉल करें।

सेटअप

अपनी MCP कॉन्फ़िगरेशन फ़ाइल में निम्नलिखित JSON जोड़ें:

  • Cursor: आपके प्रोजेक्ट रूट में .cursor/mcp.json, या ग्लोबल ~/.cursor/mcp.json
  • Claude Desktop (claude_desktop_config.json):
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "mclocks-datetime-util": {
      "command": "npx",
      "args": ["-y", "mclocks-datetime-util"]
    }
  }
}

सहेजने के बाद, एप्लिकेशन को पुनः आरंभ करें। MCP सर्वर स्वचालित रूप से डाउनलोड और शुरू हो जाएगा। निम्नलिखित टूल उपलब्ध हो जाएँगे:

  • current-time - आपके कॉन्फ़िगर किए गए समय क्षेत्रों में वर्तमान समय प्राप्त करें
  • local-time - उपयोगकर्ता के समय क्षेत्र (convtz कॉन्फ़िग या सिस्टम डिफ़ॉल्ट से) में वर्तमान स्थानीय समय प्राप्त करें
  • convert-time - दिनांक-समय स्ट्रिंग या Epoch टाइमस्टैम्प को कई समय क्षेत्रों में रूपांतरित करें
  • next-weekday - किसी दिए गए सप्ताह के दिन की अगली तारीख खोजें
  • date-to-weekday - किसी दी गई तारीख का सप्ताह का दिन प्राप्त करें
  • days-until - आज से किसी निर्दिष्ट तारीख तक के दिनों की गिनती करें
  • days-between - दो तारीखों के बीच के दिनों की गिनती करें
  • date-offset - किसी दी गई तारीख से N दिन पहले या बाद की तारीख की गणना करें

mclocks config के साथ कैसे काम करता है

MCP सर्वर स्वचालित रूप से आपकी mclocks config.json पढ़ता है और उपयोग करता है:

  • clocks - आपकी घड़ियों में परिभाषित समय क्षेत्र डिफ़ॉल्ट रूपांतरण लक्ष्य के रूप में उपयोग किए जाते हैं
  • convtz - समय क्षेत्र जानकारी के बिना दिनांक-समय स्ट्रिंग को रूपांतरित करते समय डिफ़ॉल्ट स्रोत समय क्षेत्र के रूप में उपयोग किया जाता है
  • usetz - ऐतिहासिक रूप से सटीक UTC ऑफ़सेट के लिए सख्त समय क्षेत्र रूपांतरण सक्षम करता है (जैसे, 1888 से पहले JST +09:18 था)। जब आपको ऐतिहासिक दिनांक-समय को सटीक रूप से रूपांतरित करने की आवश्यकता हो तो true पर सेट करें

यदि कोई config.json नहीं मिलती, तो सर्वर सामान्य समय क्षेत्रों के अंतर्निहित सेट पर वापस आता है (UTC, America/New_York, America/Los_Angeles, Europe/London, Europe/Berlin, Asia/Tokyo, Asia/Shanghai, Asia/Kolkata, Australia/Sydney)।

पर्यावरण चर

यदि आप config.json सेटिंग्स को ओवरराइड करना चाहते हैं, या यदि आपके पास config.json नहीं है, तो आप अपने MCP कॉन्फ़िगरेशन में पर्यावरण चर सेट कर सकते हैं। पर्यावरण चर config.json के मानों पर प्राथमिकता रखते हैं।

चर विवरण डिफ़ॉल्ट
MCLOCKS_CONFIG_PATH config.json का पथ। अधिकांश मामलों में आवश्यक नहीं, क्योंकि सर्वर स्वचालित रूप से स्थान का पता लगाता है। स्वतः पता लगाना
MCLOCKS_LOCALE सप्ताह के दिनों के नाम आदि के फ़ॉर्मेटिंग के लिए लोकेल (जैसे, ja, pt, de) en
MCLOCKS_CONVTZ समय क्षेत्र जानकारी के बिना दिनांक-समय स्ट्रिंग की व्याख्या के लिए डिफ़ॉल्ट स्रोत समय क्षेत्र (जैसे, Asia/Tokyo) (कोई नहीं)
MCLOCKS_USETZ सख्त समय क्षेत्र रूपांतरण सक्षम करने के लिए true पर सेट करें false

उदाहरण:

{
  "mcpServers": {
    "mclocks-datetime-util": {
      "command": "npx",
      "args": ["-y", "mclocks-datetime-util"],
      "env": {
        "MCLOCKS_LOCALE": "ja",
        "MCLOCKS_CONVTZ": "Asia/Tokyo"
      }
    }
  }
}

उपयोग का उदाहरण

कॉन्फ़िगर करने के बाद, आप अपने AI सहायक से इस तरह की बातें पूछ सकते हैं:

  • "अभी क्या समय है?" - आपके mclocks-कॉन्फ़िगर किए गए सभी समय क्षेत्रों में वर्तमान समय लौटाता है
  • "जकार्ता में क्या समय है?" - एक विशिष्ट समय क्षेत्र में वर्तमान समय लौटाता है
  • "Epoch 1705312200 को दिनांक-समय में रूपांतरित करें"
  • "2024-01-15T10:30:00Z को Asia/Tokyo में रूपांतरित करें"
  • "अगला शुक्रवार कौन सी तारीख है?"
  • "25 दिसंबर 2026 को कौन सा दिन है?"
  • "क्रिसमस तक कितने दिन बाकी हैं?"
  • "1 जनवरी 2026 से 31 दिसंबर 2026 के बीच कितने दिन हैं?"
  • "1 अप्रैल 2026 से 90 दिन बाद कौन सी तारीख है?"

लाइसेंस

The Artistic License 2.0

लेखक

Dai Okabayashi: https://github.com/bayashi