auto-topic.lua स्क्रिप्ट पोस्ट एक निर्धारित अंतराल पर Verlihub मुख्य चैट पर कॉन्फ़िगर किए गए हब नोटिस को पोस्ट करती है। इसका उपयोग नियम अनुस्मारक, रखरखाव नोट्स, समर्थन लिंक, कमांड संकेत और लघु सामुदायिक संदेशों के लिए करें जिनके लिए अलग बाहरी बॉट की आवश्यकता नहीं है।
इस स्क्रिप्ट को छोटा रखें. इसे छोटे कॉन्फ़िगर किए गए संदेश भेजने चाहिए और फिर Verlihub पर नियंत्रण लौटाना चाहिए। इस स्क्रिप्ट में लंबे समय से चलने वाली नौकरियां, डेटाबेस क्वेरी, बाहरी HTTP अनुरोध, फ़ाइल स्कैन या ब्लॉकिंग वेट न जोड़ें।
यह स्क्रिप्ट क्या करती है
स्क्रिप्ट कॉन्फ़िगर किए गए बॉट नाम या हब पहचान से स्वचालित मुख्य चैट संदेश भेजती है।
सामान्य उपयोगों में शामिल हैं:
- हब नियम अनुस्मारक पोस्ट करना।
- वेबसाइट या समर्थन लिंक पोस्ट करना.
- निर्धारित रखरखाव की घोषणा.
- उपयोगकर्ताओं को उपलब्ध आदेशों के बारे में याद दिलाना।
- सामुदायिक लिंक साझा करना.
- घूर्णनशील सूचनाएं प्रदर्शित करना।
- दिन-प्रतिदिन के संदेश पोस्ट करना।
उदाहरण मुख्य चैट सूचना:
<HubNotice> Please review the hub rules with !rules before sharing or chatting.
आवश्यकताएं
इस स्क्रिप्ट की आवश्यकता है:
- Verlihub स्थापित और चल रहा है।
- Verlihub Lua प्लगइन स्थापित किया गया।
- Lua प्लगइन Verlihub में सक्षम है।
- Lua स्क्रिप्ट को लोड और अनलोड करने की अनुमति।
- Verlihub Lua फ़ाइलों के लिए एक लिखने योग्य स्क्रिप्ट निर्देशिका।
स्क्रिप्ट लोड करने से पहले, पुष्टि करें कि Lua प्लगइन सक्रिय है:
!pluglist
यदि Lua प्लगइन सूचीबद्ध नहीं है, तो पहले इसे मूल Lua सेटअप आलेख से लोड या सक्षम करें।
अनुशंसित फ़ाइल स्थान
एक समर्पित स्क्रिप्ट निर्देशिका का उपयोग करें:
mkdir -p /PATH/TO/HUB/scripts
स्क्रिप्ट को यहां रखें:
/PATH/TO/HUB/scripts/auto-topic.lua
उत्पादन प्रणालियों के लिए, निर्देशिका केवल विश्वसनीय प्रशासकों या Verlihub सेवा उपयोगकर्ता द्वारा लिखने योग्य होनी चाहिए। निर्देशिका को विश्व-लेखन योग्य न बनाएं.
लोड और अनलोड कमांड
स्क्रिप्ट लोड करें:
!luaload /PATH/TO/HUB/scripts/auto-topic.lua
स्क्रिप्ट अनलोड करें:
!luaunload /PATH/TO/HUB/scripts/auto-topic.lua
यदि आप स्क्रिप्ट संपादित करते हैं, तो उसे अनलोड करें और फिर से लोड करें:
!luaunload /PATH/TO/HUB/scripts/auto-topic.lua
!luaload /PATH/TO/HUB/scripts/auto-topic.lua
जब तक आपका Verlihub Lua प्लगइन कॉन्फ़िगरेशन सापेक्ष पथों का समर्थन नहीं करता, तब तक पूर्ण निरपेक्ष पथ का उपयोग करें।
स्क्रिप्ट कोड
-- Script: auto-topic.lua
-- Purpose: Sends rotating automatic notices to Verlihub main chat.
-- Scope: Lightweight hub notices only.
-- Notes: Keep interval reasonable to avoid chat spam.
botname = "HubNotice"
interval = 900
counter = 0
notice_index = 1
notices = {
"Welcome to the hub. Please read the rules with !rules.",
"Need help? Use !help or contact an operator.",
"Visit our website for updates, guides, and hub information.",
"Keep main chat respectful and avoid spam or repeated messages."
}
function SendNotice()
if notices[notice_index] == nil then
notice_index = 1
end
VH:SendToAll("<" .. botname .. "> " .. notices[notice_index])
notice_index = notice_index + 1
if notice_index > table.getn(notices) then
notice_index = 1
end
end
function OnTimer()
counter = counter + 1
if counter >= interval then
counter = 0
SendNotice()
end
end
कॉन्फ़िगरेशन विकल्प
botname
botname = "HubNotice"
स्वचालित सूचना से पहले दिखाया गया नाम. एक स्पष्ट नाम चुनें ताकि उपयोगकर्ता समझ सकें कि संदेश स्वचालित हब जानकारी है।
उदाहरण:
botname = "HubNotice"
botname = "RulesBot"
botname = "InfoBot"
botname = "Maintenance"
interval
interval = 900
नियंत्रित करता है कि स्क्रिप्ट कितनी बार नोटिस भेजती है। इच्छित मान आमतौर पर सेकंड होता है, यह इस पर निर्भर करता है कि आपके वातावरण में Verlihub Lua टाइमर कैसे कॉन्फ़िगर किया गया है।
अनुशंसित मान:
| कीमत | अर्थ |
|---|---|
300 | हर 5 मिनट में. |
600 | हर 10 मिनट में. |
900 | हर 15 मिनट में. |
1800 | हर 30 मिनट में. |
3600 | हर 60 मिनट में. |
उत्पादन केन्द्रों के लिए, 900 या 1800 आमतौर पर छोटे अंतराल की तुलना में अधिक सुरक्षित होता है। उन मानों से बचें जो हब को शोर करते हैं:
interval = 10
सामान्य मुख्य चैट के लिए हर 10 सेकंड में एक नोटिस बहुत आक्रामक है।
counter
counter = 0
स्क्रिप्ट द्वारा प्रयुक्त आंतरिक काउंटर. इसे तब तक न बदलें जब तक आप स्क्रिप्ट तर्क को संशोधित नहीं कर रहे हों।
notice_index
notice_index = 1
ट्रैक करता है कि आगे कौन सा नोटिस भेजा जाना चाहिए। इसे यहीं छोड़ें 1 जब तक आप नहीं चाहते कि स्क्रिप्ट किसी भिन्न संदेश से शुरू हो।
notices
notices = {
"Welcome to the hub. Please read the rules with !rules.",
"Need help? Use !help or contact an operator.",
"Visit our website for updates, guides, and hub information.",
"Keep main chat respectful and avoid spam or repeated messages."
}
मुख्य चैट में घूमने वाले संदेशों की सूची. प्रत्येक नोटिस संक्षिप्त, उपयोगी और गैर-विघटनकारी होना चाहिए।
अच्छी सूचना उदाहरण:
notices = {
"Use !rules to view hub rules.",
"Use !help to see available commands.",
"Operators are marked in the user list if you need assistance.",
"Please keep main chat friendly and on topic."
}
लंबे, बार-बार या आक्रामक नोटिस से बचें। जब स्वचालित संदेश बहुत बार दिखाई देते हैं तो उपयोगकर्ताओं द्वारा उन्हें अनदेखा करने की अधिक संभावना होती है।
उदाहरण विन्यास
बुनियादी नियम अनुस्मारक
botname = "RulesBot"
interval = 1800
notices = {
"Please read the hub rules with !rules.",
"Do not spam main chat or repeat the same message.",
"Respect other users and follow operator instructions."
}
वेबसाइट और सहायता सूचना
botname = "InfoBot"
interval = 3600
notices = {
"Visit the website for hub guides, updates, and support.",
"Need help? Use !help or contact an operator.",
"Check the articles section for Verlihub setup notes and Lua scripts."
}
रखरखाव सूचना
botname = "Maintenance"
interval = 900
notices = {
"Scheduled maintenance may occur during low-traffic hours.",
"If the hub disconnects during maintenance, reconnect after a few minutes.",
"Check the website for maintenance updates."
}
सामुदायिक सूचना
botname = "Community"
interval = 1800
notices = {
"Welcome to the hub. Keep chat friendly and helpful.",
"Use main chat for general discussion. Contact operators for support issues.",
"Invite trusted users and help keep the hub useful."
}
अनुशंसित उत्पादन सेटिंग्स
अधिकांश हब के लिए, 15-मिनट या 30-मिनट के अंतराल का उपयोग करें:
botname = "HubNotice"
interval = 1800
notices = {
"Welcome to the hub. Use !rules to review the hub rules.",
"Need help? Use !help or contact an operator.",
"Keep main chat respectful and avoid spam."
}
इससे चैट में बाढ़ आए बिना नोटिस दिखाई देते रहते हैं। व्यस्त केन्द्रों के लिए, उपयोग करें:
interval = 3600
शांत केन्द्रों के लिए, उपयोग करें:
interval = 1800
मुख्य चैट स्वचालन को समुदाय का समर्थन करना चाहिए, उसे बाधित नहीं करना चाहिए।
स्क्रिप्ट का परीक्षण
स्क्रिप्ट लोड करने के बाद, पुष्टि करें कि:
- स्क्रिप्ट त्रुटियों के बिना लोड होती है।
- नोटिस मुख्य चैट में दिखाई देता है.
- सूचनाएं अपेक्षित क्रम में घूमती हैं।
- इंटरवल ज्यादा आक्रामक नहीं है.
- बॉट का नाम स्पष्ट है.
- स्क्रिप्ट साफ़-साफ़ लोड होती है।
- स्क्रिप्ट को पुनः लोड करने से डुप्लिकेट टाइमर या डुप्लिकेट नोटिस नहीं बनते हैं।
पहले छोटे अंतराल के साथ परीक्षण करें, फिर इसे उत्पादन अंतराल में बदलें।
उदाहरण परीक्षण सेटिंग:
interval = 30
परीक्षण के बाद, इसे वापस बदलें:
interval = 1800
फिर स्क्रिप्ट पुनः लोड करें।
समस्या निवारण
स्क्रिप्ट लोड नहीं होती
जांचें कि Lua प्लगइन सक्रिय है:
!pluglist
जांचें कि फ़ाइल पथ सही है:
!luaload /PATH/TO/HUB/scripts/auto-topic.lua
यदि सापेक्ष पथ काम नहीं करते तो निरपेक्ष पथ का उपयोग करें।
नोटिस दिखाई नहीं देते
जाँच करना:
- Lua प्लगइन लोड हो गया है।
- स्क्रिप्ट पथ सही है.
- आपका Verlihub Lua प्लगइन संस्करण टाइमर फ़ंक्शन का समर्थन करता है।
- परीक्षण करते समय अंतराल बहुत अधिक नहीं है.
noticesतालिका में कम से कम एक संदेश है.
अस्थायी रूप से उपयोग करें:
interval = 30
फिर स्क्रिप्ट पुनः लोड करें और अगली सूचना की प्रतीक्षा करें।
नोटिस बहुत बार दिखाई देते हैं
अंतराल बढ़ाएँ.
interval = 1800
या:
interval = 3600
उत्पादन में छोटे अंतरालों से बचें.
डुप्लिकेट नोटिस दिखाई देते हैं
इसका आम तौर पर मतलब यह है कि स्क्रिप्ट एक से अधिक बार लोड की गई थी या कोई पुराना उदाहरण सही ढंग से अनलोड नहीं हुआ था।
स्क्रिप्ट अनलोड करें:
!luaunload /PATH/TO/HUB/scripts/auto-topic.lua
फिर इसे दोबारा लोड करें:
!luaload /PATH/TO/HUB/scripts/auto-topic.lua
यदि डुप्लिकेट जारी रहता है, तो रखरखाव विंडो के दौरान Lua प्लगइन या Verlihub सेवा को पुनरारंभ करें।
नोटिस संपादित करने के बाद स्क्रिप्ट त्रुटियाँ
Lua सिंटैक्स जांचें। प्रत्येक नोटिस पंक्ति अंतिम पंक्ति को छोड़कर अल्पविराम के साथ समाप्त होनी चाहिए, जो इसे छोड़ सकती है।
सही:
notices = {
"First notice.",
"Second notice.",
"Third notice."
}
ग़लत:
notices = {
"First notice."
"Second notice."
}
गलत उदाहरण में पहले संदेश के बाद अल्पविराम गायब है।
सुरक्षा नोट
यह स्क्रिप्ट हल्की रहनी चाहिए. जोडो मत:
- बाहरी HTTP अनुरोध.
- डेटाबेस क्वेरीज़.
- फ़ाइल स्कैनिंग.
- लंबे लूप.
- स्लीप कॉल्स को ब्लॉक करना.
- प्रति-उपयोगकर्ता भारी प्रसंस्करण।
स्क्रिप्ट को केवल कॉन्फ़िगर की गई सूचनाओं को घुमाना चाहिए और उन्हें उचित अंतराल पर भेजना चाहिए।
रखरखाव नोट्स
स्क्रिप्ट बदलने से पहले बैकअप रखें:
cp /PATH/TO/HUB/scripts/auto-topic.lua /PATH/TO/HUB/scripts/auto-topic.lua.bak
यदि Git का उपयोग कर रहे हैं:
cd /PATH/TO/HUB/scripts
git add auto-topic.lua
git commit -m "Update auto-topic.lua notices"
केवल बॉट नाम, नोटिस या अंतराल बदलते समय, किसी तर्क परिवर्तन की आवश्यकता नहीं होती है।
सुझाए गए नोटिस लेखन नियम
अच्छे नोटिस संक्षिप्त और उपयोगी होते हैं।
अनुशंसित:
- प्रति सूचना एक विचार.
- स्पष्ट शब्दांकन.
- कोई बार-बार विराम चिह्न नहीं.
- कोई पूर्ण-कैप संदेश नहीं.
- अत्यधिक बार-बार पोस्टिंग नहीं.
- मुख्य चैट में कोई लंबा पैराग्राफ नहीं.
टालना:
- हर कुछ सेकंड में पोस्ट करना.
- एक ही संदेश बार-बार पोस्ट करना.
- सूचनाओं को केवल विज्ञापन के रूप में उपयोग करना।
- मुख्य चैट में बड़े नियम ब्लॉक भेजा जा रहा है।
- सक्रिय बातचीत में बार-बार बाधा डालना।