view include/core/strings.h @ 118:39521c47c7a3

*: another huge megacommit, SORRY The torrents page works a lot better now Added the edit option to the anime list right click menu Vectorized currently playing files Available player and extensions are now loaded at runtime from files in (dotpath)/players.json and (dotpath)/extensions.json These paths are not permanent and will likely be moved to (dotpath)/recognition ... ... ...
author Paper <mrpapersonic@gmail.com>
date Tue, 07 Nov 2023 23:40:54 -0500
parents 254b1d2b7096
children bc218c9d2ea6
line wrap: on
line source

#ifndef __core__strings_h
#define __core__strings_h

#include <string>
#include <vector>
#include <array>
#include <cstdint>

class QString;
class QByteArray;

namespace Strings {

/* Implode function: takes a vector of strings and turns it
   into a string, separated by delimiters. */
std::string Implode(const std::vector<std::string>& vector, const std::string& delimiter);
std::vector<std::string> Split(const std::string &text, const std::string& delimiter);

/* Substring removal functions */
std::string ReplaceAll(std::string string, const std::string& find, const std::string& replace);
std::string SanitizeLineEndings(const std::string& string);
std::string RemoveHtmlTags(std::string string);
std::string ParseHtmlEntities(std::string string);

/* stupid HTML bullshit */
std::string TextifySynopsis(const std::string& string);

std::string ToUpper(const std::string& string);
std::string ToLower(const std::string& string);

/* functions that make the way we convert from and to
   different string formats universal */
std::wstring ToWstring(const std::string& string);
std::wstring ToWstring(const QString& string);
std::string ToUtf8String(const std::wstring& wstring);
std::string ToUtf8String(const QString& string);
std::string ToUtf8String(const QByteArray& ba);
QString ToQString(const std::string& string);
QString ToQString(const std::wstring& wstring);

/* arithmetic :) */
int ToInt(const std::string& str, int def = 0);

bool ToBool(const std::string& s, const bool def = false);
std::string ToUtf8String(const bool b);

uint64_t HumanReadableSizeToBytes(const std::string& str);

std::string RemoveLeadingChars(std::string s, const char c);
std::string RemoveTrailingChars(std::string s, const char c);

bool BeginningMatchesSubstring(const std::string& str, const std::string& sub);

}; // namespace Strings

#endif // __core__strings_h