support-ticket.lua स्क्रिप्ट उपयोगकर्ताओं को Verlihub हब के अंदर एक छोटी सहायता कमांड देती है। एक उपयोगकर्ता एक कमांड टाइप करता है जैसे कि !helpme एक संक्षिप्त संदेश के साथ, और ऑपरेटरों को उपयोगकर्ता उपनाम और अनुरोध पाठ के साथ एक स्वरूपित नोटिस प्राप्त होता है।
यह स्क्रिप्ट डेटाबेस-समर्थित टिकट डेस्क नहीं है। यह पंजीकरण समस्याओं, कनेक्शन प्रश्नों, दुरुपयोग रिपोर्टों, नियम प्रश्नों और अन्य मुद्दों के लिए एक हब-साइड अधिसूचना सहायक है जिसे देखने के लिए ऑपरेटर की आवश्यकता होती है।
यह स्क्रिप्ट क्या करती है
स्क्रिप्ट कॉन्फ़िगर किए गए समर्थन कमांड के लिए मुख्य चैट को देखती है और सामान्य चैट के माध्यम से जारी रखने से पहले मेल खाने वाले संदेशों को संभालती है।
उदाहरण उपयोगकर्ता आदेश:
!helpme I cannot connect to the correct hublist.
उदाहरण ऑपरेटर सूचना:
[SupportTicket] Help request from SomeUser: I cannot connect to the correct hublist.
सामान्य उपयोगों में शामिल हैं:
- उपयोगकर्ताओं को ऑपरेटर उपनाम जाने बिना ऑपरेटरों से संपर्क करने की सुविधा देना।
- हब कनेक्शन या hublist समस्याओं की रिपोर्टिंग।
- दुर्व्यवहार करने वाले उपयोगकर्ताओं की रिपोर्ट करना.
- खाता या पंजीकरण सहायता मांगना.
- नियम स्पष्टीकरण का अनुरोध.
- हब के अंदर एक सरल समर्थन वर्कफ़्लो बनाना।
स्क्रिप्ट केवल स्वरूपित नोटिस भेजती है। यह टिकट आईडी नहीं बनाता है, स्टोर इतिहास नहीं बनाता है, स्वामित्व का दावा नहीं करता है, या वेब सपोर्ट सिस्टम को प्रतिस्थापित नहीं करता है।
आवश्यकताएं
इस स्क्रिप्ट की आवश्यकता है:
- Verlihub स्थापित और चल रहा है।
- Verlihub Lua प्लगइन स्थापित किया गया।
- Lua प्लगइन Verlihub में सक्षम है।
- Lua स्क्रिप्ट को लोड और अनलोड करने की अनुमति।
- Verlihub Lua फ़ाइलों के लिए एक लिखने योग्य स्क्रिप्ट निर्देशिका।
- एक Verlihub Lua बिल्ड जो चैट संदेश हुक को उजागर करता है जैसे
VH_OnParsedMsgChat.
स्क्रिप्ट लोड करने से पहले, पुष्टि करें कि Lua प्लगइन सक्रिय है:
!pluglist
यदि Lua प्लगइन सूचीबद्ध नहीं है, तो पहले इसे मूल Lua सेटअप आलेख से लोड या सक्षम करें।
अनुशंसित फ़ाइल स्थान
एक समर्पित स्क्रिप्ट निर्देशिका का उपयोग करें:
mkdir -p /PATH/TO/HUB/scripts
स्क्रिप्ट को यहां रखें:
/PATH/TO/HUB/scripts/support-ticket.lua
उत्पादन प्रणालियों के लिए, केवल विश्वसनीय प्रशासकों या Verlihub सेवा उपयोगकर्ता को ही उस निर्देशिका पर लिखना चाहिए। विश्व-लेखन योग्य अनुमतियों का उपयोग न करें.
लोड और अनलोड कमांड
स्क्रिप्ट लोड करें:
!luaload /PATH/TO/HUB/scripts/support-ticket.lua
स्क्रिप्ट अनलोड करें:
!luaunload /PATH/TO/HUB/scripts/support-ticket.lua
यदि आप स्क्रिप्ट संपादित करते हैं, तो उसे अनलोड करें और फिर से लोड करें:
!luaunload /PATH/TO/HUB/scripts/support-ticket.lua
!luaload /PATH/TO/HUB/scripts/support-ticket.lua
जब तक आपका Verlihub Lua प्लगइन कॉन्फ़िगरेशन सापेक्ष पथों का समर्थन नहीं करता, तब तक पूर्ण निरपेक्ष पथ का उपयोग करें।
स्क्रिप्ट कोड
-- Script: support-ticket.lua
-- Purpose: Lets users send simple help requests to hub operators.
-- Scope: Lightweight support notices only.
-- Notes: This is not a database-backed ticket system.
command = "!helpme"
botname = "SupportTicket"
min_message_length = 10
cooldown_seconds = 180
last_request = {}
function Trim(text)
return string.gsub(text, "^%s*(.-)%s*$", "%1")
end
function StartsWith(text, prefix)
return string.sub(text, 1, string.len(prefix)) == prefix
end
function GetMessageAfterCommand(text)
return Trim(string.sub(text, string.len(command) + 1))
end
function CanSendRequest(nick)
local now = os.time()
if last_request[nick] == nil then
last_request[nick] = now
return true
end
if now - last_request[nick] >= cooldown_seconds then
last_request[nick] = now
return true
end
return false
end
function SendUserMessage(user, message)
VH:SendToUser("<" .. botname .. "> " .. message, user)
end
function SendOperatorNotice(message)
-- Depending on your Verlihub Lua API version, this may need to be changed
-- to the operator or private-message helper function supported by your build.
VH:SendToClass("<" .. botname .. "> " .. message, 3, 10)
end
function HandleSupportRequest(user, text)
local nick = user.sNick
local request = GetMessageAfterCommand(text)
if string.len(request) < min_message_length then
SendUserMessage(user, "Usage: " .. command .. " <describe your issue>")
return 1
end
if not CanSendRequest(nick) then
SendUserMessage(user, "Please wait before sending another help request.")
return 1
end
SendOperatorNotice("Help request from " .. nick .. ": " .. request)
SendUserMessage(user, "Your help request was sent to the operators. Please wait for a response.")
return 1
end
function VH_OnParsedMsgChat(user, text)
if StartsWith(text, command) then
return HandleSupportRequest(user, text)
end
return 0
end
कॉन्फ़िगरेशन विकल्प
command
command = "!helpme"
उपयोगकर्ता सहायता का अनुरोध करने के लिए कमांड टाइप करते हैं। एक कमांड चुनें और इसे हब नियमों या MOTD में प्रकाशित करें।
उदाहरण:
command = "!helpme"
command = "!support"
command = "!ticket"
command = "!ophelp"
botname
botname = "SupportTicket"
स्वचालित उत्तरों और ऑपरेटर नोटिस में दिखाया गया नाम।
उदाहरण:
botname = "SupportTicket"
botname = "HelpBot"
botname = "OperatorHelp"
botname = "HubSupport"
min_message_length
min_message_length = 10
आदेश के बाद आवश्यक वर्णों की न्यूनतम संख्या. यह खाली अनुरोधों को रोकता है जैसे:
!helpme
यह कमजोर संदेशों को भी रोकता है जैसे:
!helpme hi
अनुशंसित मान:
| कीमत | अर्थ |
|---|---|
5 | अनुज्ञेय। परीक्षण करते समय उपयोगी. |
10 | सामान्य सहायता अनुरोधों के लिए अच्छा डिफ़ॉल्ट. |
20 | बेहतर होगा जब उपयोगकर्ता अस्पष्ट अनुरोध भेजें। |
cooldown_seconds
cooldown_seconds = 180
किसी उपयोगकर्ता को दूसरा समर्थन अनुरोध भेजने से पहले कितनी देर तक प्रतीक्षा करनी होगी.
अनुशंसित मान:
| कीमत | अर्थ |
|---|---|
60 | 1 मिनट. |
180 | 3 मिनट। |
300 | 5 मिनट. |
व्यस्त हब पर या जब उपयोगकर्ता एक ही अनुरोध दोहराते रहें तो लंबे समय तक कूलडाउन का उपयोग करें।
last_request
last_request = {}
उपयोगकर्ता कूलडाउन को ट्रैक करने के लिए आंतरिक तालिका का उपयोग किया जाता है। इसे तब तक संपादित न करें जब तक आप स्क्रिप्ट तर्क नहीं बदल रहे हों।
उदाहरण विन्यास
बुनियादी सहायता अनुरोध
command = "!helpme"
botname = "SupportTicket"
min_message_length = 10
cooldown_seconds = 180
उपयोगकर्ता उदाहरण:
!helpme I need help with registration.
ऑपरेटर सहायता आदेश
command = "!ophelp"
botname = "OperatorHelp"
min_message_length = 10
cooldown_seconds = 180
उपयोगकर्ता उदाहरण:
!ophelp Someone is flooding main chat.
टिकट स्टाइल कमांड
command = "!ticket"
botname = "HubSupport"
min_message_length = 20
cooldown_seconds = 300
उपयोगकर्ता उदाहरण:
!ticket I cannot connect after changing my client settings.
अनुशंसित उत्पादन सेटिंग्स
अधिकांश हब के लिए, इससे प्रारंभ करें:
command = "!helpme"
botname = "SupportTicket"
min_message_length = 10
cooldown_seconds = 180
यह उपयोगकर्ताओं को खाली या बार-बार आने वाले अनुरोधों को कम करते हुए एक आसान कमांड देता है।
व्यस्त केन्द्रों के लिए, उपयोग करें:
cooldown_seconds = 300
एक छोटे निजी केंद्र के लिए, उपयोग करें:
cooldown_seconds = 60
स्क्रिप्ट का परीक्षण
स्क्रिप्ट लोड करने के बाद, एक सामान्य उपयोगकर्ता के रूप में परीक्षण करें:
!helpme I need help testing this command.
पुष्टि करें कि:
- उपयोगकर्ता को एक पुष्टिकरण संदेश प्राप्त होता है.
- ऑपरेटरों को सहायता अनुरोध प्राप्त होता है।
- खाली अनुरोध अस्वीकार कर दिए जाते हैं.
- लघु अनुरोध नीचे होने पर अस्वीकार कर दिए जाते हैं
min_message_length. - कूलडाउन बार-बार होने वाले स्पैम को रोकता है।
- स्क्रिप्ट साफ़-साफ़ लोड होती है।
अमान्य उपयोग का भी परीक्षण करें:
!helpme
अपेक्षित परिणाम:
Usage: !helpme <describe your issue>
समस्या निवारण
स्क्रिप्ट लोड नहीं होती
जांचें कि Lua प्लगइन सक्रिय है:
!pluglist
फ़ाइल पथ जाँचें:
!luaload /PATH/TO/HUB/scripts/support-ticket.lua
यदि सापेक्ष पथ काम नहीं करते तो निरपेक्ष पथ का उपयोग करें।
आदेश प्रतिक्रिया नहीं देता
जाँच करना:
- स्क्रिप्ट लोड हो गई है.
- आदेश बिल्कुल मेल खाता है.
- Lua प्लगइन सपोर्ट करता है
VH_OnParsedMsgChat. - उपयोगकर्ता मुख्य चैट में कमांड टाइप कर रहा है।
एक संक्षिप्त परीक्षण आदेश आज़माएँ:
command = "!testhelp"
फिर स्क्रिप्ट पुनः लोड करें और दोबारा परीक्षण करें।
संचालकों को नोटिस नहीं मिलते
उदाहरण का उपयोग करता है:
VH:SendToClass("<" .. botname .. "> " .. message, 3, 10)
आपका Verlihub Lua प्लगइन संस्करण ऑपरेटर संदेशों या क्लास-आधारित संदेशों के लिए एक अलग फ़ंक्शन का उपयोग कर सकता है। अपने Verlihub संस्करण के लिए Lua एपीआई उदाहरणों की जाँच करें और बदलें SendOperatorNotice() आपके बिल्ड द्वारा समर्थित फ़ंक्शन के साथ।
समायोजित करने का कार्य है:
function SendOperatorNotice(message)
VH:SendToClass("<" .. botname .. "> " .. message, 3, 10)
end
उपयोगकर्ता स्पैम अनुरोध कर सकते हैं
कूलडाउन बढ़ाएँ:
cooldown_seconds = 300
न्यूनतम संदेश लंबाई बढ़ाएँ:
min_message_length = 20
सहायता अनुरोध बहुत अस्पष्ट हैं
उपयोग संदेश अद्यतन करें:
SendUserMessage(user, "Usage: " .. command .. " <describe the issue, nickname involved, and what happened>")
यह उपयोगकर्ताओं से एक शब्द के अनुरोध के बजाय समस्या, उपनाम और घटना को शामिल करने के लिए कहता है।
सुरक्षा नोट
यह स्क्रिप्ट हल्की रहनी चाहिए. जोडो मत:
- बाहरी HTTP अनुरोध.
- नेटवर्क कॉल को ब्लॉक करना.
- डेटाबेस हर संदेश पर लिखता है.
- जब तक लॉग रोटेशन मौजूद न हो, फ़ाइल प्रत्येक अनुरोध के लिए लिखती है।
- लंबे लूप.
- नींद बुलाती है.
- प्रति-संदेश भारी प्रसंस्करण.
यदि आपको डेटाबेस-समर्थित टिकट प्रणाली की आवश्यकता है, तो इस स्क्रिप्ट का उपयोग केवल एक अलग समर्थन प्रक्रिया के हब-साइड प्रविष्टि बिंदु के रूप में करें।
गोपनीयता नोट्स
सहायता अनुरोधों में शिकायतें, उपनाम, कनेक्शन समस्याएं, मॉडरेशन रिपोर्ट या खाता प्रश्न शामिल हो सकते हैं।
अनुशंसित प्रथाएँ:
- केवल ऑपरेटरों को अनुरोध भेजें।
- सभी उपयोगकर्ताओं के लिए समर्थन अनुरोध प्रसारित न करें.
- जब तक हब नियम स्पष्ट न करें कि निजी विवरण लॉग न करें।
- यदि फ़ाइल लॉगिंग बाद में जोड़ी गई है तो लॉग घुमाएँ या हटाएँ।
- उपयोगकर्ताओं को बताएं कि वे पासवर्ड या निजी क्रेडेंशियल शामिल न करें।
सुझाई गई उपयोगकर्ता चेतावनी:
Do not include passwords or private credentials in help requests.
रखरखाव नोट्स
स्क्रिप्ट बदलने से पहले बैकअप रखें:
cp /PATH/TO/HUB/scripts/support-ticket.lua /PATH/TO/HUB/scripts/support-ticket.lua.bak
यदि Git का उपयोग कर रहे हैं:
cd /PATH/TO/HUB/scripts
git add support-ticket.lua
git commit -m "Update support-ticket.lua settings"
केवल कमांड, बॉट नाम, कूलडाउन, या न्यूनतम संदेश लंबाई बदलते समय, किसी तर्क परिवर्तन की आवश्यकता नहीं होती है।
भविष्य में सुधार का सुझाव दिया
संभावित बाद के संस्करण जोड़ सकते हैं:
- टिकट आईडी नंबर.
- रोटेशन के साथ फ़ाइल-आधारित लॉगिंग।
- एक ऑपरेटर दावा आदेश.
- टिकट नंबर के साथ उपयोगकर्ता की पुष्टि।
- दुरुपयोग की रिपोर्ट के लिए अलग आदेश.
- केवल निजी ऑपरेटर नोटिस.
- आईपी पते या खाते द्वारा दर सीमा.
- बाहरी सहायता प्रणाली के साथ एकीकरण.
पहला संस्करण छोटा रखें. कोई सुविधा तभी जोड़ें जब वह वास्तविक हब प्रबंधन समस्या का समाधान कर दे।