comparison src/core/strings.cc @ 221:53211cb1e7f5

library: add initial library stuff nice
author Paper <paper@paper.us.eu.org>
date Mon, 08 Jan 2024 13:21:08 -0500
parents 7cf53145de11
children f784b5b1914c 2f5a9247e501
comparison
equal deleted inserted replaced
220:79a87a6dd39d 221:53211cb1e7f5
22 /* ew */ 22 /* ew */
23 std::string Implode(const std::vector<std::string>& vector, const std::string& delimiter) { 23 std::string Implode(const std::vector<std::string>& vector, const std::string& delimiter) {
24 if (vector.size() < 1) 24 if (vector.size() < 1)
25 return "-"; 25 return "-";
26 26
27 std::string out = ""; 27 std::string out;
28 28
29 for (unsigned long long i = 0; i < vector.size(); i++) { 29 for (unsigned long long i = 0; i < vector.size(); i++) {
30 out.append(vector.at(i)); 30 out.append(vector.at(i));
31 if (i < vector.size() - 1) 31 if (i < vector.size() - 1)
32 out.append(delimiter); 32 out.append(delimiter);
47 47
48 return tokens; 48 return tokens;
49 } 49 }
50 50
51 /* This function is really only used for cleaning up the synopsis of 51 /* This function is really only used for cleaning up the synopsis of
52 horrible HTML debris from AniList :) */ 52 * horrible HTML debris from AniList :)
53 */
53 std::string ReplaceAll(std::string string, const std::string& find, const std::string& replace) { 54 std::string ReplaceAll(std::string string, const std::string& find, const std::string& replace) {
54 size_t pos = 0; 55 size_t pos = 0;
55 while ((pos = string.find(find, pos)) != std::string::npos) { 56 while ((pos = string.find(find, pos)) != std::string::npos) {
56 string.replace(pos, find.length(), replace); 57 string.replace(pos, find.length(), replace);
57 pos += replace.length(); 58 pos += replace.length();
88 89
89 /* e.g. "&lt;" for "<" */ 90 /* e.g. "&lt;" for "<" */
90 std::string ParseHtmlEntities(std::string string) { 91 std::string ParseHtmlEntities(std::string string) {
91 const std::unordered_map<std::string, std::string> map = { 92 const std::unordered_map<std::string, std::string> map = {
92 /* The only one of these I can understand using are the first 93 /* The only one of these I can understand using are the first
93 three. why do the rest of these exist? */ 94 * three. why do the rest of these exist?
95 *
96 * probably mojibake.
97 */
94 {"&lt;", "<"}, 98 {"&lt;", "<"},
95 {"&rt;", ">"}, 99 {"&rt;", ">"},
96 {"&nbsp;", "\xA0"}, 100 {"&nbsp;", "\xA0"},
97 {"&amp;", "&"}, 101 {"&amp;", "&"},
98 {"&quot;", "\""}, 102 {"&quot;", "\""},
115 std::string TextifySynopsis(const std::string& string) { 119 std::string TextifySynopsis(const std::string& string) {
116 return ParseHtmlEntities(RemoveHtmlTags(SanitizeLineEndings(string))); 120 return ParseHtmlEntities(RemoveHtmlTags(SanitizeLineEndings(string)));
117 } 121 }
118 122
119 /* let Qt handle the heavy lifting of locale shit 123 /* let Qt handle the heavy lifting of locale shit
120 I don't want to deal with */ 124 * I don't want to deal with
125 */
121 std::string ToUpper(const std::string& string) { 126 std::string ToUpper(const std::string& string) {
122 return ToUtf8String(session.config.locale.GetLocale().toUpper(ToQString(string))); 127 return ToUtf8String(session.config.locale.GetLocale().toUpper(ToQString(string)));
123 } 128 }
124 129
125 std::string ToLower(const std::string& string) { 130 std::string ToLower(const std::string& string) {