package org.softeg.slartus.forpdaplus.prefs;
import android.content.Context;
import android.util.Log;
import org.softeg.slartus.forpdaplus.App;
import org.softeg.slartus.forpdaplus.classes.Devices;
import org.softeg.slartus.forpdaplus.classes.TopicBodyBuilder;
import java.util.Hashtable;
/**
* Created with IntelliJ IDEA.
* User: slinkin
* Date: 20.02.13
* Time: 8:18
* To change this template use File | Settings | File Templates.
*/
public class HtmlPreferences {
private Boolean m_SpoilerByButton = false;
public Boolean isSpoilerByButton() {
return m_SpoilerByButton;
}
public static Boolean isFullThemeTitle() {
return App.getInstance().getPreferences().getBoolean("fullThemeTitle", false);
}
private static boolean getDefaultSpoilByButton() {
return Devices.isAsus_EePad_TF300TG();
}
public void load(Context context) {
m_SpoilerByButton = App.getInstance().getPreferences().getBoolean("theme.SpoilerByButton", getDefaultSpoilByButton());
}
public static String modifySpoiler(String postBody) {
String find = "(<div class='hidetop' style='cursor:pointer;' )" +
"(onclick=\"var _n=this.parentNode.getElementsByTagName\\('div'\\)\\[1\\];if\\(_n.style.display=='none'\\)\\{_n.style.display='';\\}else\\{_n.style.display='none';\\}\">)" +
"(Спойлер \\(\\+/-\\).*?</div>)" +
"(\\s*<div class='hidemain' style=\"display:none\">)";
String replace = "$1>$3<input class='spoiler_button' type=\"button\" value=\"+\" onclick=\"toggleSpoilerVisibility\\(this\\)\"/>$4";
return postBody.replaceAll(find, replace);
}
public static String modifyBody(String value, Hashtable<String, String> emoticsDict) {
value = modifyStyleImagesBody(value);
value = modifyLinksBody(value);
value = modifyEmoticons(value, emoticsDict);
// value=value.replaceAll("<TABLE(.*?)><TD","<TABLE$1><TR><TD").replace("</TD></TABLE>","</TD></TR></TABLE>");
return value;
}
public static String modifyStyleImagesBody(String value) {
value = value
.replaceAll("('|\")[^\"'<>]*style_images/([^\"'<>]*)", "$1file:///android_asset/forum/style_images/$2")
.replaceAll("\u0000", "");
return value;
}
public static String modifyEmoticons(String value, Hashtable<String, String> emoticsDict, String path) {
return value;
// SmilesComparator bvc = new SmilesComparator(emoticsDict);
// TreeMap<String, String> sorted_map = new TreeMap<String, String>(bvc);
// sorted_map.putAll(emoticsDict);
// for (Map.Entry<String, String> entry : sorted_map.entrySet()) {
// String emo=entry.getKey();
// if(!emo.startsWith(":")||!emo.endsWith(":")){
// value = value.replaceAll("(^|\\s+)"+Pattern.quote(emo)+"($|\\s+)", String.format("$1<img src=\"%s%s\"/>$2", path, entry.getValue()));
// }
// else
// value = value.replaceAll("(^|.)"+Pattern.quote(emo)+"($|.)", String.format("$1<img src=\"%s%s\"/>$2", path, entry.getValue()));
// }
// return value;
}
public static String modifyEmoticons(String value, Hashtable<String, String> emoticsDict) {
return modifyEmoticonsToLocal(value, emoticsDict);
}
public static String modifyEmoticonsToLocal(String value, Hashtable<String, String> emoticsDict) {
return modifyEmoticons(value, emoticsDict, "file:///android_asset/forum/style_emoticons/default/");
}
public static String modifyEmoticonsToServer(String value, Hashtable<String, String> emoticsDict) {
return modifyEmoticons(value, emoticsDict, "http://s.4pda.to/img/emot/");
}
public static String modifyAttachedImagesBody(Boolean webViewAllowJs, String value) {
Log.e("kek", "modify images");
return value
.replaceAll("<a [^>]*? id=\"ipb-attach-url-\\d+-bb\"[^>]*?href=\"([^\"]*)\"[^>]*?title=\"([^\"]*)\"[^>]*?><img src=\"([^\"]*)\"[^>]*id=\"ipb-attach-img-\\d+-bb\".*?</a>",
"<img src=\"file:///android_asset/forum/style_images/1/folder_mime_types/gif.gif\"><a class=\"sp_img\" "
+ TopicBodyBuilder.getHtmlout(webViewAllowJs, "showImgPreview",
new String[]{"Прикрепленное изображение", "$3", "$1"}, false) + ">$2</a>")
.replaceAll("<img src=\"([^\"]*)\" class=\"linked-image\"[^>]*?>",
"<img src=\"file:///android_asset/forum/style_images/1/folder_mime_types/gif.gif\"><a class=\"sp_img\" "
+ TopicBodyBuilder.getHtmlout(webViewAllowJs, "showImgPreview",
new String[]{"Прикрепленное изображение", "$1", "$1"}, false) + ">Прикрепленное изображение</a>")
/*.replaceAll("<img attach_id=\"\\d+\"[^>]*?src=\"([^\"]*)\"[^>]*?>",
"<img src=\"file:///android_asset/forum/style_images/1/folder_mime_types/gif.gif\"><a class=\"sp_img\" "
+ TopicBodyBuilder.getHtmlout(webViewAllowJs, "showImgPreview",
new String[]{"Прикрепленное изображение", "$1", "$1"}, false) + ">Прикрепленное изображение</a>")*/;
}
public static String modifyLinksBody(String value) {
return value
.replaceAll("(src|href)=('|\")index.php", "$1=$2http://4pda.ru/forum/index.php")
.replaceAll("(src|href)=('|\")/forum", "$1=$2http://4pda.ru/forum");
}
}