mirror of
https://github.com/VCMP-SqMod/SqMod.git
synced 2025-01-19 03:57:14 +01:00
Compare commits
No commits in common. "f192767853ae45388f8d6bad82309ed6aa51a438" and "62b9504d435fac281e4e655801f340e83d2c387a" have entirely different histories.
f192767853
...
62b9504d43
@ -85,7 +85,6 @@ add_library(SqModule MODULE SqBase.hpp Main.cpp
|
|||||||
Library/System/Dir.cpp Library/System/Dir.hpp
|
Library/System/Dir.cpp Library/System/Dir.hpp
|
||||||
Library/System/Env.cpp Library/System/Env.hpp
|
Library/System/Env.cpp Library/System/Env.hpp
|
||||||
Library/System/Path.cpp Library/System/Path.hpp
|
Library/System/Path.cpp Library/System/Path.hpp
|
||||||
Library/UTF8.cpp Library/UTF8.hpp
|
|
||||||
Library/Utils.cpp Library/Utils.hpp
|
Library/Utils.cpp Library/Utils.hpp
|
||||||
Library/Utils/Announce.cpp Library/Utils/Announce.hpp
|
Library/Utils/Announce.cpp Library/Utils/Announce.hpp
|
||||||
Library/Utils/String.cpp Library/Utils/String.hpp
|
Library/Utils/String.cpp Library/Utils/String.hpp
|
||||||
@ -132,7 +131,7 @@ if(WIN32 OR MINGW)
|
|||||||
target_link_libraries(SqModule wsock32 ws2_32 shlwapi)
|
target_link_libraries(SqModule wsock32 ws2_32 shlwapi)
|
||||||
endif()
|
endif()
|
||||||
# Link to base libraries
|
# Link to base libraries
|
||||||
target_link_libraries(SqModule Squirrel fmt::fmt SimpleINI TinyDir xxHash ConcurrentQueue SAJSON CPR UTF8Lib PUGIXML CivetWeb maxminddb libzmq-static)
|
target_link_libraries(SqModule Squirrel fmt::fmt SimpleINI TinyDir xxHash ConcurrentQueue SAJSON CPR PUGIXML CivetWeb maxminddb libzmq-static)
|
||||||
# Enable built-in Discord support
|
# Enable built-in Discord support
|
||||||
if(ENABLE_DISCORD)
|
if(ENABLE_DISCORD)
|
||||||
target_link_libraries(SqModule DPP)
|
target_link_libraries(SqModule DPP)
|
||||||
|
@ -79,10 +79,6 @@ void Register_DPP_Message(HSQUIRRELVM vm, Table & ns)
|
|||||||
.FmtFunc(_SC("SetDisabled"), &DpComponent::SetDisabled)
|
.FmtFunc(_SC("SetDisabled"), &DpComponent::SetDisabled)
|
||||||
.FmtFunc(_SC("SetAnimated"), &DpComponent::SetAnimated)
|
.FmtFunc(_SC("SetAnimated"), &DpComponent::SetAnimated)
|
||||||
.FmtFunc(_SC("SetEmojiName"), &DpComponent::ApplyEmojiName)
|
.FmtFunc(_SC("SetEmojiName"), &DpComponent::ApplyEmojiName)
|
||||||
.FmtFunc(_SC("GetComponents"), &DpComponent::GetComponents)
|
|
||||||
.FmtFunc(_SC("GetOptions"), &DpComponent::GetOptions)
|
|
||||||
.FmtFunc(_SC("AddComponent"), &DpComponent::AddComponent)
|
|
||||||
.FmtFunc(_SC("AddOption"), &DpComponent::AddSelectOption)
|
|
||||||
);
|
);
|
||||||
// --------------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------------
|
||||||
Register_DPP_VectorProxy< dpp::component, DpComponent, SqDppComponent >(vm, ns, _SC("Components"));
|
Register_DPP_VectorProxy< dpp::component, DpComponent, SqDppComponent >(vm, ns, _SC("Components"));
|
||||||
@ -93,13 +89,6 @@ void Register_DPP_Message(HSQUIRRELVM vm, Table & ns)
|
|||||||
.SquirrelFunc(_SC("_typename"), &SqDppEmbedFooter::Fn)
|
.SquirrelFunc(_SC("_typename"), &SqDppEmbedFooter::Fn)
|
||||||
// Member Properties
|
// Member Properties
|
||||||
.Prop(_SC("Valid"), &DpEmbedFooter::IsValid)
|
.Prop(_SC("Valid"), &DpEmbedFooter::IsValid)
|
||||||
.Prop(_SC("Text"), &DpEmbedFooter::GetText, &DpEmbedFooter::SetText)
|
|
||||||
.Prop(_SC("Icon"), &DpEmbedFooter::GetIconURL, &DpEmbedFooter::SetIconURL)
|
|
||||||
.Prop(_SC("Proxy"), &DpEmbedFooter::GetProxyURL, &DpEmbedFooter::SetProxyURL)
|
|
||||||
// Member Methods
|
|
||||||
.FmtFunc(_SC("SetText"), &DpEmbedFooter::ApplyText)
|
|
||||||
.FmtFunc(_SC("SetIcon"), &DpEmbedFooter::ApplyIconURL)
|
|
||||||
.FmtFunc(_SC("SetProxy"), &DpEmbedFooter::ApplyProxyURL)
|
|
||||||
);
|
);
|
||||||
// --------------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------------
|
||||||
ns.Bind(_SC("EmbedImage"),
|
ns.Bind(_SC("EmbedImage"),
|
||||||
@ -108,15 +97,6 @@ void Register_DPP_Message(HSQUIRRELVM vm, Table & ns)
|
|||||||
.SquirrelFunc(_SC("_typename"), &SqDppEmbedImage::Fn)
|
.SquirrelFunc(_SC("_typename"), &SqDppEmbedImage::Fn)
|
||||||
// Member Properties
|
// Member Properties
|
||||||
.Prop(_SC("Valid"), &DpEmbedImage::IsValid)
|
.Prop(_SC("Valid"), &DpEmbedImage::IsValid)
|
||||||
.Prop(_SC("URL"), &DpEmbedImage::GetURL, &DpEmbedImage::SetURL)
|
|
||||||
.Prop(_SC("Proxy"), &DpEmbedImage::GetProxyURL, &DpEmbedImage::SetProxyURL)
|
|
||||||
.Prop(_SC("Height"), &DpEmbedImage::GetHeight, &DpEmbedImage::SetHeight)
|
|
||||||
.Prop(_SC("Width"), &DpEmbedImage::GetWidth, &DpEmbedImage::SetWidth)
|
|
||||||
// Member Methods
|
|
||||||
.FmtFunc(_SC("SetURL"), &DpEmbedImage::ApplyURL)
|
|
||||||
.FmtFunc(_SC("SetProxy"), &DpEmbedImage::ApplyProxyURL)
|
|
||||||
.FmtFunc(_SC("SetHeight"), &DpEmbedImage::ApplyHeight)
|
|
||||||
.FmtFunc(_SC("SetWidth"), &DpEmbedImage::ApplyWidth)
|
|
||||||
);
|
);
|
||||||
// --------------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------------
|
||||||
ns.Bind(_SC("EmbedProvider"),
|
ns.Bind(_SC("EmbedProvider"),
|
||||||
@ -125,11 +105,6 @@ void Register_DPP_Message(HSQUIRRELVM vm, Table & ns)
|
|||||||
.SquirrelFunc(_SC("_typename"), &SqDppEmbedProvider::Fn)
|
.SquirrelFunc(_SC("_typename"), &SqDppEmbedProvider::Fn)
|
||||||
// Member Properties
|
// Member Properties
|
||||||
.Prop(_SC("Valid"), &DpEmbedProvider::IsValid)
|
.Prop(_SC("Valid"), &DpEmbedProvider::IsValid)
|
||||||
.Prop(_SC("Name"), &DpEmbedProvider::GetName, &DpEmbedProvider::SetName)
|
|
||||||
.Prop(_SC("URL"), &DpEmbedProvider::GetURL, &DpEmbedProvider::SetURL)
|
|
||||||
// Member Methods
|
|
||||||
.FmtFunc(_SC("SetName"), &DpEmbedProvider::ApplyName)
|
|
||||||
.FmtFunc(_SC("SetURL"), &DpEmbedProvider::ApplyURL)
|
|
||||||
);
|
);
|
||||||
// --------------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------------
|
||||||
ns.Bind(_SC("EmbedAuthor"),
|
ns.Bind(_SC("EmbedAuthor"),
|
||||||
@ -138,15 +113,6 @@ void Register_DPP_Message(HSQUIRRELVM vm, Table & ns)
|
|||||||
.SquirrelFunc(_SC("_typename"), &SqDppEmbedAuthor::Fn)
|
.SquirrelFunc(_SC("_typename"), &SqDppEmbedAuthor::Fn)
|
||||||
// Member Properties
|
// Member Properties
|
||||||
.Prop(_SC("Valid"), &DpEmbedAuthor::IsValid)
|
.Prop(_SC("Valid"), &DpEmbedAuthor::IsValid)
|
||||||
.Prop(_SC("Name"), &DpEmbedAuthor::GetName, &DpEmbedAuthor::SetName)
|
|
||||||
.Prop(_SC("URL"), &DpEmbedAuthor::GetURL, &DpEmbedAuthor::SetURL)
|
|
||||||
.Prop(_SC("Icon"), &DpEmbedAuthor::GetIconURL, &DpEmbedAuthor::SetIconURL)
|
|
||||||
.Prop(_SC("ProxyIcon"), &DpEmbedAuthor::GetProxyIconURL, &DpEmbedAuthor::SetProxyIconURL)
|
|
||||||
// Member Methods
|
|
||||||
.FmtFunc(_SC("SetName"), &DpEmbedAuthor::ApplyName)
|
|
||||||
.FmtFunc(_SC("SetURL"), &DpEmbedAuthor::ApplyURL)
|
|
||||||
.FmtFunc(_SC("SetIcon"), &DpEmbedAuthor::ApplyIconURL)
|
|
||||||
.FmtFunc(_SC("SetProxyIcon"), &DpEmbedAuthor::ApplyProxyIconURL)
|
|
||||||
);
|
);
|
||||||
// --------------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------------
|
||||||
ns.Bind(_SC("EmbedField"),
|
ns.Bind(_SC("EmbedField"),
|
||||||
@ -155,13 +121,6 @@ void Register_DPP_Message(HSQUIRRELVM vm, Table & ns)
|
|||||||
.SquirrelFunc(_SC("_typename"), &SqDppEmbedField::Fn)
|
.SquirrelFunc(_SC("_typename"), &SqDppEmbedField::Fn)
|
||||||
// Member Properties
|
// Member Properties
|
||||||
.Prop(_SC("Valid"), &DpEmbedField::IsValid)
|
.Prop(_SC("Valid"), &DpEmbedField::IsValid)
|
||||||
.Prop(_SC("Name"), &DpEmbedField::GetName, &DpEmbedField::SetName)
|
|
||||||
.Prop(_SC("Value"), &DpEmbedField::GetValue, &DpEmbedField::SetValue)
|
|
||||||
.Prop(_SC("Inline"), &DpEmbedField::IsInline, &DpEmbedField::SetInline)
|
|
||||||
// Member Methods
|
|
||||||
.FmtFunc(_SC("SetName"), &DpEmbedField::ApplyName)
|
|
||||||
.FmtFunc(_SC("SetValue"), &DpEmbedField::ApplyValue)
|
|
||||||
.FmtFunc(_SC("SetInline"), &DpEmbedField::SetInline)
|
|
||||||
);
|
);
|
||||||
// --------------------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------------------
|
||||||
ns.Bind(_SC("Embed"),
|
ns.Bind(_SC("Embed"),
|
||||||
|
@ -471,41 +471,6 @@ struct DpComponent
|
|||||||
// Return the associated script object
|
// Return the associated script object
|
||||||
return mSqOptions;
|
return mSqOptions;
|
||||||
}
|
}
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Add a sub-component, only valid for action rows.
|
|
||||||
* Adding subcomponents to a component will automatically set this component's type to SqDiscordComponentType.ActionRow.
|
|
||||||
*/
|
|
||||||
DpComponent & AddComponent(DpComponent & comp)
|
|
||||||
{
|
|
||||||
Valid().add_component(comp.Valid());
|
|
||||||
// Do we have to sync a script wrapper?
|
|
||||||
if (!mSqComponents.IsNull())
|
|
||||||
{
|
|
||||||
mSqComponents.CastI< Components >()->mVec.emplace_back();
|
|
||||||
}
|
|
||||||
// Allow chaining
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Add a select-option. Limited to 25 options.
|
|
||||||
*/
|
|
||||||
DpComponent & AddSelectOption(DpSelectOption & opt)
|
|
||||||
{
|
|
||||||
// Make sure we are within bounds
|
|
||||||
if (Valid().options.size() >= 25)
|
|
||||||
{
|
|
||||||
STHROWF("Maximum of 25 select options was reached");
|
|
||||||
}
|
|
||||||
// Perform the request
|
|
||||||
mPtr->add_select_option(opt.Valid());
|
|
||||||
// Do we have to sync a script wrapper?
|
|
||||||
if (!mSqOptions.IsNull())
|
|
||||||
{
|
|
||||||
mSqOptions.CastI< Options >()->mVec.emplace_back();
|
|
||||||
}
|
|
||||||
// Allow chaining
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------------------------------
|
/* ------------------------------------------------------------------------------------------------
|
||||||
@ -596,42 +561,7 @@ struct DpEmbedFooter
|
|||||||
* Check whether a valid instance is managed.
|
* Check whether a valid instance is managed.
|
||||||
*/
|
*/
|
||||||
SQMOD_NODISCARD bool IsValid() const { return static_cast< bool >(mPtr); }
|
SQMOD_NODISCARD bool IsValid() const { return static_cast< bool >(mPtr); }
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Retrieve the associated footer's text.
|
|
||||||
*/
|
|
||||||
SQMOD_NODISCARD const String & GetText() const { return Valid().text; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated footer's text.
|
|
||||||
*/
|
|
||||||
void SetText(StackStrF & text) const { Valid().set_text(text.ToStr()); }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated footer's text.
|
|
||||||
*/
|
|
||||||
DpEmbedFooter & ApplyText(StackStrF & text) { SetText(text); return *this; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Retrieve the associated footer's icon url.
|
|
||||||
*/
|
|
||||||
SQMOD_NODISCARD const String & GetIconURL() const { return Valid().icon_url; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated footer's icon url.
|
|
||||||
*/
|
|
||||||
void SetIconURL(StackStrF & icon_url) const { Valid().set_icon(icon_url.ToStr()); }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated footer's icon url.
|
|
||||||
*/
|
|
||||||
DpEmbedFooter & ApplyIconURL(StackStrF & icon_url) { SetIconURL(icon_url); return *this; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Retrieve the associated footer's proxied icon url.
|
|
||||||
*/
|
|
||||||
SQMOD_NODISCARD const String & GetProxyURL() const { return Valid().proxy_url; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated footer's proxied icon url.
|
|
||||||
*/
|
|
||||||
void SetProxyURL(StackStrF & proxy_url) const { Valid().set_proxy(proxy_url.ToStr()); }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated footer's proxied icon url.
|
|
||||||
*/
|
|
||||||
DpEmbedFooter & ApplyProxyURL(StackStrF & proxy_url) { SetProxyURL(proxy_url); return *this; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------------------------------
|
/* ------------------------------------------------------------------------------------------------
|
||||||
@ -722,94 +652,7 @@ struct DpEmbedImage
|
|||||||
* Check whether a valid instance is managed.
|
* Check whether a valid instance is managed.
|
||||||
*/
|
*/
|
||||||
SQMOD_NODISCARD bool IsValid() const { return static_cast< bool >(mPtr); }
|
SQMOD_NODISCARD bool IsValid() const { return static_cast< bool >(mPtr); }
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Retrieve the associated URL to image or video.
|
|
||||||
*/
|
|
||||||
SQMOD_NODISCARD const String & GetURL() const { return Valid().url; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated URL to image or video.
|
|
||||||
*/
|
|
||||||
void SetURL(StackStrF & url) const
|
|
||||||
{
|
|
||||||
if (url.mLen > 0)
|
|
||||||
{
|
|
||||||
Valid().url.assign(url.mPtr, static_cast< size_t >(url.mLen));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Valid().url.clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated URL to image or video.
|
|
||||||
*/
|
|
||||||
DpEmbedImage & ApplyURL(StackStrF & url) { SetURL(url); return *this; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Retrieve the associated proxied image url.
|
|
||||||
*/
|
|
||||||
SQMOD_NODISCARD const String & GetProxyURL() const { return Valid().proxy_url; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated proxied image url.
|
|
||||||
*/
|
|
||||||
void SetProxyURL(StackStrF & proxy_url) const
|
|
||||||
{
|
|
||||||
if (proxy_url.mLen > 0)
|
|
||||||
{
|
|
||||||
Valid().proxy_url.assign(proxy_url.mPtr, static_cast< size_t >(proxy_url.mLen));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Valid().proxy_url.clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated proxied image url.
|
|
||||||
*/
|
|
||||||
DpEmbedImage & ApplyProxyURL(StackStrF & proxy_url) { SetProxyURL(proxy_url); return *this; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Retrieve the associated height (calculated by discord).
|
|
||||||
*/
|
|
||||||
SQMOD_NODISCARD const String & GetHeight() const { return Valid().height; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated height (calculated by discord).
|
|
||||||
*/
|
|
||||||
void SetHeight(StackStrF & height) const
|
|
||||||
{
|
|
||||||
if (height.mLen > 0)
|
|
||||||
{
|
|
||||||
Valid().height.assign(height.mPtr, static_cast< size_t >(height.mLen));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Valid().height.clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated height (calculated by discord).
|
|
||||||
*/
|
|
||||||
DpEmbedImage & ApplyHeight(StackStrF & height) { SetHeight(height); return *this; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Retrieve the associated width (calculated by discord).
|
|
||||||
*/
|
|
||||||
SQMOD_NODISCARD const String & GetWidth() const { return Valid().width; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated width (calculated by discord).
|
|
||||||
*/
|
|
||||||
void SetWidth(StackStrF & width) const
|
|
||||||
{
|
|
||||||
if (width.mLen > 0)
|
|
||||||
{
|
|
||||||
Valid().width.assign(width.mPtr, static_cast< size_t >(width.mLen));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Valid().width.clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated width (calculated by discord).
|
|
||||||
*/
|
|
||||||
DpEmbedImage & ApplyWidth(StackStrF & width) { SetWidth(width); return *this; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------------------------------
|
/* ------------------------------------------------------------------------------------------------
|
||||||
@ -900,50 +743,7 @@ struct DpEmbedProvider
|
|||||||
* Check whether a valid instance is managed.
|
* Check whether a valid instance is managed.
|
||||||
*/
|
*/
|
||||||
SQMOD_NODISCARD bool IsValid() const { return static_cast< bool >(mPtr); }
|
SQMOD_NODISCARD bool IsValid() const { return static_cast< bool >(mPtr); }
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Retrieve the associated provider name.
|
|
||||||
*/
|
|
||||||
SQMOD_NODISCARD const String & GetName() const { return Valid().name; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated provider name.
|
|
||||||
*/
|
|
||||||
void SetName(StackStrF & name) const
|
|
||||||
{
|
|
||||||
if (name.mLen > 0)
|
|
||||||
{
|
|
||||||
Valid().name.assign(name.mPtr, static_cast< size_t >(name.mLen));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Valid().name.clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated provider name.
|
|
||||||
*/
|
|
||||||
DpEmbedProvider & ApplyName(StackStrF & name) { SetName(name); return *this; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Retrieve the associated provider URL.
|
|
||||||
*/
|
|
||||||
SQMOD_NODISCARD const String & GetURL() const { return Valid().url; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated provider URL.
|
|
||||||
*/
|
|
||||||
void SetURL(StackStrF & url) const
|
|
||||||
{
|
|
||||||
if (url.mLen > 0)
|
|
||||||
{
|
|
||||||
Valid().url.assign(url.mPtr, static_cast< size_t >(url.mLen));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Valid().url.clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated provider URL.
|
|
||||||
*/
|
|
||||||
DpEmbedProvider & ApplyURL(StackStrF & url) { SetURL(url); return *this; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------------------------------
|
/* ------------------------------------------------------------------------------------------------
|
||||||
@ -1034,94 +834,7 @@ struct DpEmbedAuthor
|
|||||||
* Check whether a valid instance is managed.
|
* Check whether a valid instance is managed.
|
||||||
*/
|
*/
|
||||||
SQMOD_NODISCARD bool IsValid() const { return static_cast< bool >(mPtr); }
|
SQMOD_NODISCARD bool IsValid() const { return static_cast< bool >(mPtr); }
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Retrieve the associated author name.
|
|
||||||
*/
|
|
||||||
SQMOD_NODISCARD const String & GetName() const { return Valid().name; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated author name.
|
|
||||||
*/
|
|
||||||
void SetName(StackStrF & name) const
|
|
||||||
{
|
|
||||||
if (name.mLen > 0)
|
|
||||||
{
|
|
||||||
Valid().name.assign(name.mPtr, static_cast< size_t >(name.mLen));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Valid().name.clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated author name.
|
|
||||||
*/
|
|
||||||
DpEmbedAuthor & ApplyName(StackStrF & name) { SetName(name); return *this; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Retrieve the associated author URL.
|
|
||||||
*/
|
|
||||||
SQMOD_NODISCARD const String & GetURL() const { return Valid().url; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated author URL.
|
|
||||||
*/
|
|
||||||
void SetURL(StackStrF & url) const
|
|
||||||
{
|
|
||||||
if (url.mLen > 0)
|
|
||||||
{
|
|
||||||
Valid().url.assign(url.mPtr, static_cast< size_t >(url.mLen));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Valid().url.clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated author URL.
|
|
||||||
*/
|
|
||||||
DpEmbedAuthor & ApplyURL(StackStrF & url) { SetURL(url); return *this; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Retrieve the associated author icon URL.
|
|
||||||
*/
|
|
||||||
SQMOD_NODISCARD const String & GetIconURL() const { return Valid().icon_url; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated author icon URL.
|
|
||||||
*/
|
|
||||||
void SetIconURL(StackStrF & icon_url) const
|
|
||||||
{
|
|
||||||
if (icon_url.mLen > 0)
|
|
||||||
{
|
|
||||||
Valid().icon_url.assign(icon_url.mPtr, static_cast< size_t >(icon_url.mLen));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Valid().icon_url.clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated author icon URL.
|
|
||||||
*/
|
|
||||||
DpEmbedAuthor & ApplyIconURL(StackStrF & icon_url) { SetIconURL(icon_url); return *this; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Retrieve the associated proxied icon URL.
|
|
||||||
*/
|
|
||||||
SQMOD_NODISCARD const String & GetProxyIconURL() const { return Valid().proxy_icon_url; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated proxied icon URL.
|
|
||||||
*/
|
|
||||||
void SetProxyIconURL(StackStrF & proxy_icon_url) const
|
|
||||||
{
|
|
||||||
if (proxy_icon_url.mLen > 0)
|
|
||||||
{
|
|
||||||
Valid().proxy_icon_url.assign(proxy_icon_url.mPtr, static_cast< size_t >(proxy_icon_url.mLen));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Valid().proxy_icon_url.clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated proxied icon URL.
|
|
||||||
*/
|
|
||||||
DpEmbedAuthor & ApplyProxyIconURL(StackStrF & proxy_icon_url) { SetProxyIconURL(proxy_icon_url); return *this; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------------------------------
|
/* ------------------------------------------------------------------------------------------------
|
||||||
@ -1212,66 +925,7 @@ struct DpEmbedField
|
|||||||
* Check whether a valid instance is managed.
|
* Check whether a valid instance is managed.
|
||||||
*/
|
*/
|
||||||
SQMOD_NODISCARD bool IsValid() const { return static_cast< bool >(mPtr); }
|
SQMOD_NODISCARD bool IsValid() const { return static_cast< bool >(mPtr); }
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Retrieve the associated field name.
|
|
||||||
*/
|
|
||||||
SQMOD_NODISCARD const String & GetName() const { return Valid().name; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated field name.
|
|
||||||
*/
|
|
||||||
void SetName(StackStrF & name) const
|
|
||||||
{
|
|
||||||
if (name.mLen > 0)
|
|
||||||
{
|
|
||||||
Valid().name.assign(name.mPtr, static_cast< size_t >(name.mLen));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Valid().name.clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated field name.
|
|
||||||
*/
|
|
||||||
DpEmbedField & ApplyName(StackStrF & name) { SetName(name); return *this; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Retrieve the associated field value (max length 1000).
|
|
||||||
*/
|
|
||||||
SQMOD_NODISCARD const String & GetValue() const { return Valid().value; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated field value (max length 1000).
|
|
||||||
*/
|
|
||||||
void SetValue(StackStrF & value) const
|
|
||||||
{
|
|
||||||
if (value.mLen > 0)
|
|
||||||
{
|
|
||||||
auto str = value.ToStr();
|
|
||||||
auto len = dpp::utility::utf8len(str);
|
|
||||||
// Make sure we are within bounds
|
|
||||||
if (len > 1000)
|
|
||||||
{
|
|
||||||
STHROWF("Field value exceeds the 1000 character limit");
|
|
||||||
}
|
|
||||||
// Assign the specified string
|
|
||||||
Valid().value = std::move(str);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Valid().value.clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify the associated field value (max length 1000).
|
|
||||||
*/
|
|
||||||
DpEmbedField & ApplyValue(StackStrF & value) { SetValue(value); return *this; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Check whether the field is to be displayed inline.
|
|
||||||
*/
|
|
||||||
SQMOD_NODISCARD bool IsInline() const { return Valid().is_inline; }
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
|
||||||
* Modify whether the field is to be displayed inline.
|
|
||||||
*/
|
|
||||||
DpEmbedField & SetInline(bool toggle) { Valid().is_inline = toggle; return *this; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------------------------------
|
/* ------------------------------------------------------------------------------------------------
|
||||||
|
@ -169,21 +169,7 @@ template < class T, class W > struct DpVectorProxy
|
|||||||
// Return the object from the cache
|
// Return the object from the cache
|
||||||
return mVec[static_cast< size_t >(i)].first;
|
return mVec[static_cast< size_t >(i)].first;
|
||||||
}
|
}
|
||||||
SQMOD_NODISCARD LightObj & Get(SQInteger i)
|
SQMOD_NODISCARD LightObj & Get(SQInteger i) { ValidIdx_(i); return Get_(i); }
|
||||||
{
|
|
||||||
// Was the referenced vector modified?
|
|
||||||
if (mVec.size() < Valid().size())
|
|
||||||
{
|
|
||||||
// Synchronize the size
|
|
||||||
mVec.resize(mPtr->size());
|
|
||||||
// Synchronize the cache
|
|
||||||
CacheSync();
|
|
||||||
}
|
|
||||||
// Validate index
|
|
||||||
ValidIdx_(i);
|
|
||||||
// Perform the request
|
|
||||||
return Get_(i);
|
|
||||||
}
|
|
||||||
/* --------------------------------------------------------------------------------------------
|
/* --------------------------------------------------------------------------------------------
|
||||||
* Modify a value from the container.
|
* Modify a value from the container.
|
||||||
*/
|
*/
|
||||||
|
@ -1,135 +0,0 @@
|
|||||||
// ------------------------------------------------------------------------------------------------
|
|
||||||
#include "Library/UTF8.hpp"
|
|
||||||
#include "Core/Buffer.hpp"
|
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
|
||||||
namespace SqMod {
|
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
|
||||||
SQMOD_NODISCARD static SQInteger SqStrLenUTF8(StackStrF & str)
|
|
||||||
{
|
|
||||||
// Is the string empty or invalid?
|
|
||||||
if (str.mLen <= 0)
|
|
||||||
{
|
|
||||||
return str.mLen; // Return same value
|
|
||||||
}
|
|
||||||
// Perform the request and return the result
|
|
||||||
return static_cast< SQInteger >(utf8len(str.mPtr));
|
|
||||||
}
|
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
|
||||||
SQMOD_NODISCARD static SQInteger SqStrNLenUTF8(SQInteger len, StackStrF & str)
|
|
||||||
{
|
|
||||||
// Is the string empty or invalid?
|
|
||||||
if (str.mLen <= 0)
|
|
||||||
{
|
|
||||||
return str.mLen; // Return same value
|
|
||||||
}
|
|
||||||
// Is the specified length within bounds?
|
|
||||||
else if (std::abs(len) > str.mLen)
|
|
||||||
{
|
|
||||||
STHROWF("Specified range {} is out of bounds {}", len, str.mLen);
|
|
||||||
}
|
|
||||||
// Should we compute the length backwards?
|
|
||||||
else if (len < 0)
|
|
||||||
{
|
|
||||||
len = str.mLen - std::abs(len); // Subtract from actual length
|
|
||||||
}
|
|
||||||
// Did we trim all of it?
|
|
||||||
else if (len == 0)
|
|
||||||
{
|
|
||||||
return 0; // Nothing to search for
|
|
||||||
}
|
|
||||||
// Perform the request and return the result
|
|
||||||
return static_cast< SQInteger >(utf8nlen(str.mPtr, static_cast< size_t >(len)));
|
|
||||||
}
|
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
|
||||||
SQMOD_NODISCARD static SQInteger SqStrChrUTF8(SQInteger chr, StackStrF & str)
|
|
||||||
{
|
|
||||||
// Is the string empty or invalid?
|
|
||||||
if (str.mLen <= 0)
|
|
||||||
{
|
|
||||||
return -1; // Let the user know that we could not search for this
|
|
||||||
}
|
|
||||||
// Look for the specified character in the string
|
|
||||||
auto * p = reinterpret_cast< const SQChar * >(utf8chr(str.mPtr, static_cast< utf8_int32_t >(chr)));
|
|
||||||
// Return the distance in bytes where the character was found
|
|
||||||
return static_cast< SQInteger >(p - str.mPtr);
|
|
||||||
}
|
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
|
||||||
SQMOD_NODISCARD static SQInteger SqCaseCmpUTF8(StackStrF & a, StackStrF & b)
|
|
||||||
{
|
|
||||||
// Is the left string invalid?
|
|
||||||
if (a.mLen < 0)
|
|
||||||
{
|
|
||||||
STHROWF("Invalid string on the left {}", a.mLen);
|
|
||||||
}
|
|
||||||
// Is the right string invalid?
|
|
||||||
else if (b.mLen < 0)
|
|
||||||
{
|
|
||||||
STHROWF("Invalid string on the right {}", b.mLen);
|
|
||||||
}
|
|
||||||
// Perform the request and return the result
|
|
||||||
return utf8casecmp(a.mPtr, b.mPtr);
|
|
||||||
}
|
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
|
||||||
SQMOD_NODISCARD static SQInteger SqNCaseCmpUTF8(StackStrF & a, StackStrF & b)
|
|
||||||
{
|
|
||||||
// Is the left string invalid?
|
|
||||||
if (a.mLen < 0)
|
|
||||||
{
|
|
||||||
STHROWF("Invalid string on the left {}", a.mLen);
|
|
||||||
}
|
|
||||||
// Is the right string invalid?
|
|
||||||
else if (b.mLen < 0)
|
|
||||||
{
|
|
||||||
STHROWF("Invalid string on the right {}", b.mLen);
|
|
||||||
}
|
|
||||||
// See if we can decide this based on length differences
|
|
||||||
else if (a.mLen < b.mLen)
|
|
||||||
{
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
else if (a.mLen > b.mLen)
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
// Perform the request and return the result
|
|
||||||
return utf8ncasecmp(a.mPtr, b.mPtr, static_cast< size_t >(a.mLen));
|
|
||||||
}
|
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
|
||||||
SQMOD_NODISCARD static SQInteger SqCaseStrUTF8(StackStrF & hs, StackStrF & nd)
|
|
||||||
{
|
|
||||||
// Is the haystack or needle string empty or invalid?
|
|
||||||
if (hs.mLen <= 0 || nd.mLen <= 0)
|
|
||||||
{
|
|
||||||
return -1; // Let the user know that we could not search for this
|
|
||||||
}
|
|
||||||
// Look for the specified needle string in the haystack string
|
|
||||||
auto * p = reinterpret_cast< const SQChar * >(utf8casestr(hs.mPtr, nd.mPtr));
|
|
||||||
// Return the distance in bytes where the string was found
|
|
||||||
return static_cast< SQInteger >(p - hs.mPtr);
|
|
||||||
}
|
|
||||||
|
|
||||||
// ================================================================================================
|
|
||||||
void Register_UTF8(HSQUIRRELVM vm)
|
|
||||||
{
|
|
||||||
Table ns(vm);
|
|
||||||
|
|
||||||
ns
|
|
||||||
.FmtFunc(_SC("StrLen"), &SqStrLenUTF8)
|
|
||||||
.FmtFunc(_SC("StrNLen"), &SqStrNLenUTF8)
|
|
||||||
.FmtFunc(_SC("StrChr"), &SqStrChrUTF8)
|
|
||||||
.FmtFunc(_SC("CaseCmp"), &SqCaseCmpUTF8)
|
|
||||||
.FmtFunc(_SC("NCaseCmp"), &SqNCaseCmpUTF8)
|
|
||||||
.FmtFunc(_SC("CaseStr"), &SqCaseStrUTF8)
|
|
||||||
;
|
|
||||||
|
|
||||||
RootTable(vm).Bind(_SC("SqUTF8"), ns);
|
|
||||||
}
|
|
||||||
|
|
||||||
} // Namespace:: SqMod
|
|
@ -1,14 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
|
||||||
#include "Core/Utility.hpp"
|
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
|
||||||
#include <utf8.h>
|
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
|
||||||
namespace SqMod {
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} // Namespace:: SqMod
|
|
@ -41,7 +41,6 @@ extern void Register_Net(HSQUIRRELVM vm);
|
|||||||
extern void Register_Numeric(HSQUIRRELVM vm);
|
extern void Register_Numeric(HSQUIRRELVM vm);
|
||||||
extern void Register_String(HSQUIRRELVM vm);
|
extern void Register_String(HSQUIRRELVM vm);
|
||||||
extern void Register_System(HSQUIRRELVM vm);
|
extern void Register_System(HSQUIRRELVM vm);
|
||||||
extern void Register_UTF8(HSQUIRRELVM vm);
|
|
||||||
extern void Register_Utils(HSQUIRRELVM vm);
|
extern void Register_Utils(HSQUIRRELVM vm);
|
||||||
extern void Register_XML(HSQUIRRELVM vm);
|
extern void Register_XML(HSQUIRRELVM vm);
|
||||||
extern void Register_ZMQ(HSQUIRRELVM vm);
|
extern void Register_ZMQ(HSQUIRRELVM vm);
|
||||||
@ -111,7 +110,6 @@ bool RegisterAPI(HSQUIRRELVM vm)
|
|||||||
Register_Numeric(vm);
|
Register_Numeric(vm);
|
||||||
Register_String(vm);
|
Register_String(vm);
|
||||||
Register_System(vm);
|
Register_System(vm);
|
||||||
Register_UTF8(vm);
|
|
||||||
Register_Utils(vm);
|
Register_Utils(vm);
|
||||||
Register_XML(vm);
|
Register_XML(vm);
|
||||||
Register_ZMQ(vm);
|
Register_ZMQ(vm);
|
||||||
|
1
vendor/CMakeLists.txt
vendored
1
vendor/CMakeLists.txt
vendored
@ -6,7 +6,6 @@ add_subdirectory(SimpleIni)
|
|||||||
add_subdirectory(TinyDir)
|
add_subdirectory(TinyDir)
|
||||||
add_subdirectory(SAJSON)
|
add_subdirectory(SAJSON)
|
||||||
add_subdirectory(CPR)
|
add_subdirectory(CPR)
|
||||||
add_subdirectory(UTF8)
|
|
||||||
add_subdirectory(PUGIXML)
|
add_subdirectory(PUGIXML)
|
||||||
add_subdirectory(CivetWeb)
|
add_subdirectory(CivetWeb)
|
||||||
set(BUILD_TESTING OFF CACHE INTERNAL "" FORCE)
|
set(BUILD_TESTING OFF CACHE INTERNAL "" FORCE)
|
||||||
|
13
vendor/UTF8/CMakeLists.txt
vendored
13
vendor/UTF8/CMakeLists.txt
vendored
@ -1,13 +0,0 @@
|
|||||||
# Create the UTF8Lib library
|
|
||||||
add_library(UTF8Lib STATIC
|
|
||||||
utf8.h
|
|
||||||
utf8.c
|
|
||||||
)
|
|
||||||
# Set speciffic options
|
|
||||||
target_compile_options(UTF8Lib PRIVATE -fvisibility=hidden)
|
|
||||||
# Includes
|
|
||||||
target_include_directories(UTF8Lib PUBLIC ${CMAKE_CURRENT_LIST_DIR})
|
|
||||||
# Private library defines
|
|
||||||
#target_compile_definitions(UTF8Lib PRIVATE )
|
|
||||||
# Public library defines
|
|
||||||
# target_compile_definitions(UTF8Lib PUBLIC )
|
|
24
vendor/UTF8/LICENSE
vendored
24
vendor/UTF8/LICENSE
vendored
@ -1,24 +0,0 @@
|
|||||||
This is free and unencumbered software released into the public domain.
|
|
||||||
|
|
||||||
Anyone is free to copy, modify, publish, use, compile, sell, or
|
|
||||||
distribute this software, either in source code form or as a compiled
|
|
||||||
binary, for any purpose, commercial or non-commercial, and by any
|
|
||||||
means.
|
|
||||||
|
|
||||||
In jurisdictions that recognize copyright laws, the author or authors
|
|
||||||
of this software dedicate any and all copyright interest in the
|
|
||||||
software to the public domain. We make this dedication for the benefit
|
|
||||||
of the public at large and to the detriment of our heirs and
|
|
||||||
successors. We intend this dedication to be an overt act of
|
|
||||||
relinquishment in perpetuity of all present and future rights to this
|
|
||||||
software under copyright law.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
||||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
||||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
||||||
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
|
||||||
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
||||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
||||||
OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
|
|
||||||
For more information, please refer to <http://unlicense.org/>
|
|
1
vendor/UTF8/utf8.c
vendored
1
vendor/UTF8/utf8.c
vendored
@ -1 +0,0 @@
|
|||||||
#include "utf8.h"
|
|
1662
vendor/UTF8/utf8.h
vendored
1662
vendor/UTF8/utf8.h
vendored
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user