hub-stats.lua स्क्रिप्ट एक बॉट-जैसी उपयोगकर्ता-सूची प्रविष्टि बनाती है जो वर्तमान हब आँकड़े प्रदर्शित करती है। एक हब एक अलग बाहरी बॉट प्रक्रिया चलाए बिना ऑनलाइन उपयोगकर्ताओं, ऑपरेटरों, कुल शेयर, या एक कॉम्पैक्ट स्थिति मार्कर दिखा सकता है।
यह स्क्रिप्ट केवल प्रदर्शन पर केंद्रित है। यह सरल काउंटरों को पढ़ता है, जैसे एक संक्षिप्त नाम बनाता है !_Stats_128U_4Ops, और महंगे काम को हब प्रक्रिया से बाहर छोड़ देता है।
यह स्क्रिप्ट क्या करती है
स्क्रिप्ट कॉन्फ़िगर किए गए हब आँकड़ों से एक प्रदर्शन नाम बनाती है।
उदाहरण प्रदर्शन नाम:
!_Users_128
!_Hub_128_Online
!_Stats_128U_4Ops
!_Share_24.5TB
सामान्य उपयोगों में शामिल हैं:
- मौजूदा उपयोगकर्ताओं को ऑनलाइन दिखाया जा रहा है.
- ऑपरेटरों को ऑनलाइन दिखाया जा रहा है.
- जब Lua एपीआई इसे सस्ते में उजागर करता है तो कुल हब शेयर दिखाया जाता है।
- जब आपका निर्माण उस काउंटर को उजागर करता है तो चरम उपयोगकर्ताओं को दिखाना।
- जब आपका निर्माण उस काउंटर को उजागर करता है तो पंजीकृत उपयोगकर्ता दिखाना।
- एक कॉम्पैक्ट हब स्थिति मार्कर बनाना।
- उपयोगकर्ता सूची में लाइव आँकड़े प्रविष्टि जोड़ना।
उपलब्ध सटीक काउंटर आपके Verlihub संस्करण द्वारा उजागर Verlihub Lua प्लगइन एपीआई पर निर्भर करते हैं।
आवश्यकताएं
इस स्क्रिप्ट की आवश्यकता है:
- Verlihub स्थापित और चल रहा है।
- Verlihub Lua प्लगइन स्थापित किया गया।
- Lua प्लगइन Verlihub में सक्षम है।
- Lua स्क्रिप्ट को लोड और अनलोड करने की अनुमति।
- Verlihub Lua फ़ाइलों के लिए एक लिखने योग्य स्क्रिप्ट निर्देशिका।
- एक Verlihub Lua बिल्ड जो उपयोगकर्ता-सूची डिस्प्ले डेटा को उजागर कर सकता है या डिस्प्ले प्रविष्टि से नाम-जनरेशन फ़ंक्शन को कॉल कर सकता है।
स्क्रिप्ट लोड करने से पहले, पुष्टि करें कि Lua प्लगइन सक्रिय है:
!pluglist
यदि Lua प्लगइन सूचीबद्ध नहीं है, तो पहले इसे मूल Lua सेटअप आलेख से लोड या सक्षम करें।
अनुशंसित फ़ाइल स्थान
एक समर्पित स्क्रिप्ट निर्देशिका का उपयोग करें:
mkdir -p /PATH/TO/HUB/scripts
स्क्रिप्ट को यहां रखें:
/PATH/TO/HUB/scripts/hub-stats.lua
उत्पादन प्रणालियों के लिए, केवल विश्वसनीय प्रशासकों या Verlihub सेवा उपयोगकर्ता को ही उस निर्देशिका पर लिखना चाहिए। विश्व-लेखन योग्य अनुमतियों का उपयोग न करें.
लोड और अनलोड कमांड
स्क्रिप्ट लोड करें:
!luaload /PATH/TO/HUB/scripts/hub-stats.lua
स्क्रिप्ट अनलोड करें:
!luaunload /PATH/TO/HUB/scripts/hub-stats.lua
यदि आप स्क्रिप्ट संपादित करते हैं, तो उसे अनलोड करें और फिर से लोड करें:
!luaunload /PATH/TO/HUB/scripts/hub-stats.lua
!luaload /PATH/TO/HUB/scripts/hub-stats.lua
जब तक आपका Verlihub Lua प्लगइन कॉन्फ़िगरेशन सापेक्ष पथों का समर्थन नहीं करता, तब तक पूर्ण निरपेक्ष पथ का उपयोग करें।
स्क्रिप्ट कोड
-- Script: hub-stats.lua
-- Purpose: Displays hub statistics as a bot-like user-list entry.
-- Scope: Lightweight display bot only.
-- Notes: Available statistics depend on the Verlihub Lua API exposed by your build.
name = ""
class = 3
description = "Hub Stats Bot"
speed = "100"
email = ""
share = "0"
prefix = "!_Stats_"
postfix = ""
interval = 60
counter = 0
show_users = true
show_ops = true
show_share = false
function SafeCall(callback, fallback)
local ok, result = pcall(callback)
if ok and result ~= nil then
return result
end
return fallback
end
function FormatShare(bytes)
local value = tonumber(bytes)
if value == nil then
return "0B"
end
if value >= 1099511627776 then
return string.format("%.1fTB", value / 1099511627776)
end
if value >= 1073741824 then
return string.format("%.1fGB", value / 1073741824)
end
if value >= 1048576 then
return string.format("%.1fMB", value / 1048576)
end
if value >= 1024 then
return string.format("%.1fKB", value / 1024)
end
return tostring(value) .. "B"
end
function GetUserCount()
-- Replace this function body if your Verlihub Lua API uses a different call.
return SafeCall(function()
return VH:GetUsersCount()
end, 0)
end
function GetOperatorCount()
-- Replace this function body if your Verlihub Lua API uses a different call.
return SafeCall(function()
return VH:GetOperatorsCount()
end, 0)
end
function GetTotalShare()
-- Replace this function body if your Verlihub Lua API uses a different call.
return SafeCall(function()
return VH:GetTotalShare()
end, 0)
end
function GetStatsText()
local parts = {}
if show_users then
table.insert(parts, tostring(GetUserCount()) .. "U")
end
if show_ops then
table.insert(parts, tostring(GetOperatorCount()) .. "Ops")
end
if show_share then
table.insert(parts, FormatShare(GetTotalShare()))
end
if table.getn(parts) == 0 then
return "Online"
end
return table.concat(parts, "_")
end
function GetName()
return prefix .. GetStatsText() .. postfix
end
कॉन्फ़िगरेशन विकल्प
name
name = ""
बॉट-जैसी प्रविष्टि के लिए आधार नाम मान।
इस स्क्रिप्ट में, दृश्य नाम उत्पन्न होता है GetName(), इसलिए name आमतौर पर खाली रह सकता है.
class
class = 3
बॉट जैसी प्रविष्टि के प्रदर्शित वर्ग या प्रोफ़ाइल स्तर को नियंत्रित करता है।
वर्ग मानों का अर्थ हब कॉन्फ़िगरेशन पर निर्भर करता है। ऐसे मान का उपयोग करें जो उपयोगकर्ता सूची में सांख्यिकी प्रविष्टि के प्रदर्शित होने के तरीके से मेल खाता हो।
description
description = "Hub Stats Bot"
बॉट-जैसी प्रविष्टि के लिए दिखाया गया विवरण।
उदाहरण:
description = "Hub Stats Bot"
description = "Users Online"
description = "Hub Status"
description = "Live Hub Stats"
speed
speed = "100"
बॉट-जैसी प्रविष्टि के लिए कनेक्शन गति मान प्रदर्शित होता है। ये कॉस्मेटिक है. यह नियंत्रित नहीं करता कि स्क्रिप्ट कितनी बार अपडेट होती है।
email = ""
बॉट-जैसी प्रविष्टि के लिए दिखाया गया ईमेल फ़ील्ड। जब तक आप संपर्क पता प्रदर्शित नहीं करना चाहते, इसे खाली छोड़ दें।
share
share = "0"
बॉट-जैसी प्रविष्टि के लिए प्रदर्शित शेयर आकार। आँकड़े प्रदर्शित करने वाले बॉट के लिए, 0 यह तब तक उपयुक्त है जब तक आप नहीं चाहते कि प्रविष्टि सजावटी शेयर मूल्य दर्शाए।
prefix
prefix = "!_Stats_"
पाठ को जनरेट किए गए आँकड़ों से पहले रखा गया है।
उदाहरण:
prefix = "!_Stats_"
prefix = "!_Hub_"
prefix = "!_Users_"
prefix = "[Stats] "
ऐसा उपसर्ग चुनें जो हब उपयोगकर्ता सूची में स्पष्ट रूप से क्रमबद्ध हो।
postfix
postfix = ""
उत्पन्न आँकड़ों के बाद पाठ रखा गया।
उदाहरण:
postfix = ""
postfix = "_Online"
postfix = "_Hub"
interval
interval = 60
नियंत्रित करता है कि डिस्प्ले प्रविष्टि कितनी बार अपडेट होनी चाहिए।
अनुशंसित मान:
| कीमत | अर्थ |
|---|---|
30 | अधिक प्रतिक्रियाशील. व्यस्त केन्द्रों के लिए उपयोगी. |
60 | अनुशंसित डिफ़ॉल्ट. |
300 | कम गतिविधि. शांत केन्द्रों के लिए उपयोगी. |
निम्न मूल्यों से बचें. हब आँकड़ों को हर सेकंड अपडेट करने की आवश्यकता नहीं है।
counter
counter = 0
स्क्रिप्ट द्वारा प्रयुक्त आंतरिक काउंटर. इसे तब तक न बदलें जब तक आप स्क्रिप्ट तर्क को संशोधित नहीं कर रहे हों।
show_users
show_users = true
नियंत्रित करता है कि प्रदर्शन नाम में वर्तमान ऑनलाइन उपयोगकर्ता संख्या शामिल है या नहीं।
उदाहरण आउटपुट:
!_Stats_128U
show_ops
show_ops = true
नियंत्रित करता है कि प्रदर्शन नाम में वर्तमान ऑपरेटर गिनती शामिल है या नहीं।
उदाहरण आउटपुट:
!_Stats_128U_4Ops
show_share
show_share = false
नियंत्रित करता है कि प्रदर्शन नाम में कुल हब शेयर शामिल है या नहीं।
उदाहरण आउटपुट:
!_Stats_128U_4Ops_24.5TB
इसे तभी सक्षम करें जब आपका Verlihub Lua एपीआई एक विश्वसनीय कुल शेयर मूल्य प्रदर्शित करता है।
एपीआई संगतता नोट्स
उदाहरण स्क्रिप्ट इन फ़ंक्शंस का उपयोग करती है:
VH:GetUsersCount()
VH:GetOperatorsCount()
VH:GetTotalShare()
आपका Verlihub Lua प्लगइन संस्करण विभिन्न फ़ंक्शन नामों को उजागर कर सकता है। यदि स्क्रिप्ट लोड होती है लेकिन हमेशा शून्य प्रदर्शित करती है, तो काउंटर फ़ंक्शंस द्वारा उपयोग की जाने वाली एपीआई कॉल को समायोजित करें।
संपादित करने के मुख्य कार्य हैं:
function GetUserCount()
return SafeCall(function()
return VH:GetUsersCount()
end, 0)
end
function GetOperatorCount()
return SafeCall(function()
return VH:GetOperatorsCount()
end, 0)
end
function GetTotalShare()
return SafeCall(function()
return VH:GetTotalShare()
end, 0)
end
उन कॉलों को अपने Verlihub Lua प्लगइन संस्करण द्वारा समर्थित फ़ंक्शन से बदलें।
उदाहरण विन्यास
केवल उपयोगकर्ता गणना
prefix = "!_Users_"
postfix = "_Online"
interval = 60
show_users = true
show_ops = false
show_share = false
उदाहरण प्रदर्शन:
!_Users_128U_Online
उपयोगकर्ता और ऑपरेटर
prefix = "!_Stats_"
postfix = ""
interval = 60
show_users = true
show_ops = true
show_share = false
उदाहरण प्रदर्शन:
!_Stats_128U_4Ops
कुल शेयर प्रदर्शन
prefix = "!_Share_"
postfix = ""
interval = 300
show_users = false
show_ops = false
show_share = true
उदाहरण प्रदर्शन:
!_Share_24.5TB
कॉम्पैक्ट हब स्थिति
prefix = "!_Hub_"
postfix = ""
interval = 60
show_users = true
show_ops = true
show_share = true
उदाहरण प्रदर्शन:
!_Hub_128U_4Ops_24.5TB
अनुशंसित उत्पादन सेटिंग्स
अधिकांश हब के लिए, केवल उपयोगकर्ताओं और ऑपरेटरों से प्रारंभ करें:
prefix = "!_Stats_"
postfix = ""
interval = 60
show_users = true
show_ops = true
show_share = false
यह सामान्य उपयोगकर्ता सूचियों के लिए डिस्प्ले को पर्याप्त छोटा रखता है।
यदि हब उपयोगकर्ता सूची में भीड़ है, तो छोटे डिस्प्ले का उपयोग करें:
prefix = "!_U_"
postfix = ""
interval = 60
show_users = true
show_ops = false
show_share = false
यदि आपके Verlihub संस्करण में कुल शेयर गणना महंगी या अविश्वसनीय है, तो इसे अक्षम रखें:
show_share = false
स्क्रिप्ट का परीक्षण
स्क्रिप्ट लोड करने के बाद, जेनरेट की गई सांख्यिकी प्रविष्टि के लिए हब उपयोगकर्ता सूची की जांच करें।
पुष्टि करें कि:
- प्रविष्टि केवल एक बार दिखाई देती है.
- प्रदर्शित उपयोगकर्ता संख्या सही है.
- प्रदर्शित ऑपरेटर संख्या सही है.
- सक्षम होने पर कुल शेयर सही ढंग से प्रदर्शित होता है।
- उपयोगकर्ता सूची के लिए नाम बहुत लंबा नहीं है.
- अद्यतन अंतराल उचित है.
- स्क्रिप्ट अनलोड करने के बाद प्रविष्टि गायब हो जाती है।
- स्क्रिप्ट को पुनः लोड करने से डुप्लिकेट नहीं बनते हैं।
यदि डिस्प्ले हमेशा शून्य दिखाता है, तो एपीआई संगतता अनुभाग की समीक्षा करें।
समस्या निवारण
स्क्रिप्ट लोड नहीं होती
जांचें कि Lua प्लगइन सक्रिय है:
!pluglist
फ़ाइल पथ जाँचें:
!luaload /PATH/TO/HUB/scripts/hub-stats.lua
यदि सापेक्ष पथ काम नहीं करते तो निरपेक्ष पथ का उपयोग करें।
आँकड़े हमेशा शून्य दिखाते हैं
इसका आमतौर पर मतलब है कि Lua एपीआई फ़ंक्शन नाम आपके Verlihub प्लगइन संस्करण से मेल नहीं खाते हैं।
इसमें प्रयुक्त कार्यों की जाँच करें:
GetUserCount()
GetOperatorCount()
GetTotalShare()
फिर उदाहरण बदलें VH:* आपके इंस्टॉलेशन द्वारा समर्थित फ़ंक्शन के साथ कॉल करता है।
प्रविष्टि नाम बहुत लंबा है
कुछ फ़ील्ड अक्षम करें या उपसर्ग छोटा करें.
उदाहरण:
prefix = "!_S_"
show_share = false
अपडेट बहुत बार प्रदर्शित करें
अंतराल बढ़ाएँ.
अनुशंसित:
interval = 60
शांत केन्द्रों के लिए:
interval = 300
डुप्लिकेट प्रविष्टियाँ दिखाई देती हैं
स्क्रिप्ट अनलोड करें:
!luaunload /PATH/TO/HUB/scripts/hub-stats.lua
फिर इसे दोबारा लोड करें:
!luaload /PATH/TO/HUB/scripts/hub-stats.lua
यदि डुप्लिकेट जारी रहता है, तो रखरखाव विंडो के दौरान Lua प्लगइन या Verlihub सेवा को पुनरारंभ करें।
सुरक्षा नोट
यह स्क्रिप्ट हल्की रहनी चाहिए. जोडो मत:
- बाहरी HTTP अनुरोध.
- प्रत्येक अद्यतन पर डेटाबेस क्वेरीज़।
- फ़ाइल स्कैनिंग.
- लंबे लूप.
- स्लीप कॉल्स को ब्लॉक करना.
- प्रति-उपयोगकर्ता महंगी गणनाएँ।
आँकड़े प्रदर्शन स्क्रिप्ट को सरल हब काउंटर पढ़ना चाहिए और प्रदर्शन नाम अपडेट करना चाहिए। यदि किसी मान की गणना करना महंगा है, तो उसे हब प्रक्रिया के बाहर कैश करें।
रखरखाव नोट्स
स्क्रिप्ट बदलने से पहले बैकअप रखें:
cp /PATH/TO/HUB/scripts/hub-stats.lua /PATH/TO/HUB/scripts/hub-stats.lua.bak
यदि Git का उपयोग कर रहे हैं:
cd /PATH/TO/HUB/scripts
git add hub-stats.lua
git commit -m "Update hub-stats.lua settings"
केवल उपसर्ग, उपसर्ग, अंतराल, या सक्षम आँकड़े बदलते समय, किसी तर्क परिवर्तन की आवश्यकता नहीं होती है।
भविष्य में सुधार का सुझाव दिया
संभावित बाद के संस्करण जोड़ सकते हैं:
- अधिकतम उपयोगकर्ता संख्या प्रदर्शन.
- पंजीकृत उपयोगकर्ता संख्या प्रदर्शन।
- हब अपटाइम डिस्प्ले।
- इकाई द्वारा कुल शेयर प्रदर्शन.
- उपयोगकर्ताओं के लिए अलग-अलग प्रदर्शन प्रविष्टियाँ और साझा करें।
- ऑपरेटर-केवल आँकड़े आदेश।
- दैनिक हाई-वॉटर मार्क ट्रैकिंग।
- फ़ाइल-आधारित आँकड़े स्नैपशॉट लॉगिंग।
केवल वे आँकड़े जोड़ें जिन्हें उपयोगकर्ता या ऑपरेटर पढ़ेंगे। बहुत अधिक जानकारी उपयोगकर्ता-सूची प्रविष्टि को स्कैन करना कठिन बना देती है।