fix links

This commit is contained in:
2022-02-11 01:01:24 +01:00
parent 1d19e111c3
commit 5ec61c7634
2 changed files with 247 additions and 94 deletions

View File

@ -163,7 +163,7 @@ void
MainAttachment::addLink (string &plain, string &html, const string &url, const string &name) const {
string plainNewOneLink (templatePlainAddLink);
replaceAll (plainNewOneLink, TMPL_DOWNLOAD, url);
replaceAll (plainNewOneLink, TMPL_FILENAME, name);
replaceAll (plainNewOneLink, TMPL_FILENAME, "\""+name+"\"");
plain += plainNewOneLink;
string htmlNewOneLink (templateHtmlAddLink);
string codedUrl (url);
@ -211,7 +211,7 @@ MainAttachment::getDisclaim (string &plain, string &html) const {
plain = "\r\n"+KAZ_PLAIN_START+"\r\n"+KAZ_PLAIN_HR+"\r\n"+KAZ_PLAIN_DONT_TOUCH+"\r\n\r\n"+KAZ_PLAIN_WARNING+"\r\n\r\n"+KAZ_PLAIN_DOWLOAD_ONE+"\r\n"+plainNewLinks;
html = templateHtmlHeader+htmlNewLinks;
if (previousLinks.size ()) {
plain += KAZ_PLAIN_DOWLOAD_OTHER+"\r\n"+plainOldLinks;
plain += "\r\n"+KAZ_PLAIN_DOWLOAD_OTHER+"\r\n"+plainOldLinks;
html += templateHtmlOtherLink+htmlOldLinks;
}
if (linkCount > 1 && archiveDownloadURL.length ()) {
@ -239,7 +239,7 @@ MainAttachment::addPrevious (const string &href, const string &name, const bool
if (oldVal.length () && name.length () && !trust)
return;
previousLinks.erase (href);
previousLinks [href] = name;
previousLinks [href] = regex_replace (name, regex (R"([\t\r\n\"]+|(\\\")|(>\s*))"), "");
LOG ("inserted: " << href << ": " << previousLinks[href]);
}
@ -255,7 +255,7 @@ MainAttachment::extractLinks (const string &extractedPlainKAZ) {
const string href (extractedPlainKAZ.substr (startPos, stopPos-startPos));
LOG ("plain href: " << href);
if (extractedPlainKAZ [stopPos] && extractedPlainKAZ [stopPos] != '\n')
if (extractedPlainKAZ [stopPos])
++stopPos;
startPos = stopPos;
// get all href but KAZ_WEB_SITE
@ -266,11 +266,11 @@ MainAttachment::extractLinks (const string &extractedPlainKAZ) {
string::size_type nextPos = extractedPlainKAZ.find ("http", startPos);
string name (extractedPlainKAZ, startPos, (nextPos == string::npos ? extractedPlainKAZ.length () : nextPos) - startPos);
// skip [> \r\n\t]
nextPos = name.find_first_not_of ("[> \t\r\n]");
nextPos = name.find_first_not_of ("[> \t\r\n\"]");
if (nextPos != string::npos)
name.erase (0, nextPos);
// stop before [>\r\n\t]
nextPos = name.find_first_of ("[>\t\r\n]");
nextPos = name.find_first_of ("[\"]");
if (nextPos != string::npos)
name.erase (nextPos);
LOG ("plain name: " << name);
@ -354,7 +354,8 @@ void
MainAttachment::removePreviousArchive () {
vector<string> toRemove;
for (map <string, string>::const_iterator it = previousLinks.begin (); it != previousLinks.end (); ++it)
if (it->first.find ("&l=/") != string::npos)
if (it->first.find ("&g=") != string::npos ||
it->first.find ("&l=/") != string::npos) // v1 compatibility
toRemove.push_back (it->first);
for (string old : toRemove)
previousLinks.erase (old);