📄 archiver.java
字号:
threadList.add(thread);
}
}
forum_inc.setFullversion(fullversion);
forum_inc.setNavsub(navsub);
forum_inc.setQm(qm);
forum_inc.setStart(start);
Multi_inc multi_inc = new Multi_inc(page,10,Integer.valueOf(forumMap.get("threads")),tpp,qm+"fid-"+fid);
forum_inc.setMulti_inc(multi_inc);
}else{
forum_inc.setRefuse(true);
}
}else{
forum_inc.setRefuse(true);
}
return forum_inc;
}
private Thread_inc executeThread_inc(int tid,int page,String qm,String navtitle,String meta_contentadd,String boardurl,Map<String,Map<String,String>> forumsMap_catch,Map<String,String> style_catch,Map<String,String> fullversion,Map<String,String> settingMap,Map<String,Map<String,String>> advList,Map<String,String> advitems,float timeoffset){
Thread_inc thread_inc = new Thread_inc();
String sql = "SELECT * FROM "+tablepre+"threads t " +
"LEFT JOIN "+tablepre+"forums f ON f.fid=t.fid " +
"LEFT JOIN "+tablepre+"forumfields ff ON ff.fid=f.fid " +
"WHERE t.tid='"+tid+"' AND t.readperm='0' AND t.price<='0' AND t.displayorder>='0' " +
"AND f.status>0 AND ff.password=''";
List<Map<String,String>> t_f_ff_MapList = dataBaseService.executeQuery(sql);
page = Math.max(1, page);
if(t_f_ff_MapList!=null&&t_f_ff_MapList.size()>0){
Map<String,String> t_f_ff_Map = t_f_ff_MapList.get(0);
String viewperm = t_f_ff_Map.get("viewperm");
String formulaperm = t_f_ff_Map.get("formulaperm");
Forum currentForum = new Forum();
currentForum.setFid(t_f_ff_Map.get("fid"));
currentForum.setName(t_f_ff_Map.get("name"));
String threadSubject = t_f_ff_Map.get("subject");
if((viewperm==null||viewperm.equals("") || (forumperm(viewperm))) || !forumformulaperm(formulaperm)){
navtitle = threadSubject+"("+"页"+" "+page+") ";
boolean navsub = t_f_ff_Map.get("type").equals("sub");
if(navsub){
String superForumId = t_f_ff_Map.get("fup");
String superForumName = Common.strip_tags(forumsMap_catch.get(superForumId).get("name"));
Forum superForum = new Forum();
superForum.setFid(superForumId);
superForum.setName(superForumName);
thread_inc.setSuperForum(superForum);
navtitle += " - "+superForumName;
}
navtitle += " - "+Common.strip_tags(t_f_ff_Map.get("name"))+" - ";
fullversion.put("title", threadSubject);
fullversion.put("link", "viewthread.jsp?tid="+tid);
int ppp = Integer.parseInt(settingMap.get("postperpage")) * 2;
int start = (page - 1) * ppp;
sql = "SELECT p.pid, p.author, p.dateline, p.subject, p.message, p.anonymous, p.status, m.groupid " +
"FROM "+tablepre+"posts p " +
"LEFT JOIN "+tablepre+"members m ON p.authorid=m.uid " +
"WHERE p.tid='"+tid+"' AND p.invisible='0' " +
"ORDER BY dateline LIMIT "+start+", "+ppp;
List<Map<String,String>> post_memberMapList = dataBaseService.executeQuery(sql);
if(post_memberMapList!=null&&post_memberMapList.size()>0){
Map<String,String> post_member_thread = post_memberMapList.get(0);
String tempGroupid = post_member_thread.get("groupid");
if(tempGroupid==null||tempGroupid.equals("4")||tempGroupid.equals("5")||tempGroupid.equals("6")){
post_member_thread.put("message", "*** 作者被禁止或删除 内容自动屏蔽 ***");
}else if(post_member_thread.get("status").equals("1")){
post_member_thread.put("message", "*** 该帖被屏蔽 ***");
}
meta_contentadd = Common.cutstr(Common.strip_tags(post_member_thread.get("message").replace("\r", "").replace("\n", "").replace("\t", "")), 200, null);
String dateFormat = settingMap.get("dateformat");
String timeFormat = settingMap.get("timeformat");
SimpleDateFormat format = new SimpleDateFormat(dateFormat+" "+timeFormat);
List<Posts> postsList = thread_inc.getPostsList();
for(Map<String,String> post_memberMap : post_memberMapList){
Posts posts = thread_inc.getPosts();
tempGroupid = post_memberMap.get("groupid");
if(tempGroupid==null||tempGroupid.equals("4")||tempGroupid.equals("5")||tempGroupid.equals("6")){
post_memberMap.put("message", "*** 作者被禁止或删除 内容自动屏蔽 ***");
}else if(post_memberMap.get("status").equals("1")){
post_memberMap.put("message", "*** 该帖被屏蔽 ***");
}
String dateline = Common.gmdate(format, Integer.parseInt(post_memberMap.get("dateline")), timeoffset);
String postSubject = post_memberMap.get("subject");
String message = post_memberMap.get("message");
String tempMessage = "";
if(postSubject!=null&&!postSubject.equals("")){
tempMessage = "<h2>"+postSubject+"</h2>";
}
message = message.replace("&", "&").replace("\"", """).replace("<", "<").replace(">", ">").replace("\t", " ").replace(" ", " ").replace(" ", " ");
message = message.replaceAll("^&(#\\d{3,5};)$", "&\\1").replaceAll("\\[hide=?\\d*\\](.+?)\\[\\/hide\\]", "<b>**** Hidden Message *****</b>");
message = tempMessage + message.replace("\n", "<br />");
String jammer = t_f_ff_Map.get("jammer");
if(jammer!=null&&!jammer.equals("")&&!jammer.equals("0")){
message = message.replaceAll("^\\<br \\/\\>$", jammer(style_catch.get("ALTBG2")));
}
String anonymous = post_memberMap.get("anonymous");
String author = post_memberMap.get("author");
if(anonymous==null||Integer.parseInt(anonymous)>0){
author = "匿名";
}
posts.setAuthor(author);
posts.setDateline(dateline);
posts.setMessage(message);
postsList.add(posts);
}
}
thread_inc.setBbname(settingMap.get("bbname"));
thread_inc.setCurrentForum(currentForum);
thread_inc.setNavsub(navsub);
thread_inc.setQm(qm);
thread_inc.setThreadSubject(threadSubject);
thread_inc.setFullversion(fullversion);
setHeaderAndFooter(thread_inc, advList, advitems, settingMap, fullversion, boardurl, meta_contentadd, navtitle);
Multi_inc multi_inc = new Multi_inc(page,10,Integer.valueOf(t_f_ff_Map.get("replies")),ppp,qm+"tid-"+tid);
thread_inc.setMulti_inc(multi_inc);
}else{
thread_inc.setRefuse(false);
}
}else{
thread_inc.setRefuse(false);
}
return thread_inc;
}
private void setHeaderAndFooter(WithHeaderAndFoot withHeaderAndFoot,Map<String,Map<String,String>> advList,Map<String,String> advitems,Map<String,String> settingMap,Map<String,String> fullversion,String boardurl,String meta_contentadd,String navtitle){
Header_inc header_inc = new Header_inc();
header_inc.setBoardurl(boardurl);
header_inc.setMeta_contentadd(meta_contentadd);
header_inc.setNavtitle(navtitle);
header_inc.setSettingMap(settingMap);
Foot_inc foot_inc = new Foot_inc();
foot_inc.setFullversion(fullversion);
foot_inc.setVersion(settingMap.get("version"));
String headerbanner = "";
String footerbanner1 = "";
String footerbanner2 = "";
String footerbanner3 = "";
if(advList != null && advitems!=null){
Map<String,String> temp = advList.get("headerbanner");
if(temp!=null){
headerbanner = advitems.get(temp.get("0"));
if(headerbanner==null){
headerbanner = advitems.get(temp.get("all"));
}
}
header_inc.setHeaderbanner(headerbanner);
temp = advList.get("footerbanner1");
if(temp!=null){
footerbanner1 = advitems.get(temp.get("0"));
if(footerbanner1==null){
footerbanner1 = advitems.get(temp.get("all"));
}
}
foot_inc.setFooterbanner1(footerbanner1 == null ? "" : footerbanner1);
temp = advList.get("footerbanner2");
if(temp!=null){
footerbanner2 = advitems.get(temp.get("0"));
if(footerbanner2==null){
footerbanner2 = advitems.get(temp.get("all"));
}
}
foot_inc.setFooterbanner2(footerbanner2 == null ? "" : footerbanner2);
temp = advList.get("footerbanner3");
if(temp!=null){
footerbanner3 = advitems.get(temp.get("0"));
if(footerbanner3==null){
footerbanner3 = advitems.get(temp.get("all"));
}
}
foot_inc.setFooterbanner3(footerbanner3 == null ? "" : footerbanner3);
}
withHeaderAndFoot.setHeader(header_inc);
withHeaderAndFoot.setFooter(foot_inc);
}
private boolean forumperm(String viewperm){
return viewperm.equals("") || viewperm.indexOf("\t7\t") >=0;
}
private boolean forumformulaperm(String formula){
if(formula==null||formula.equals("")){
return true;
}
Map<Integer,String> formulaMap = dataParse.characterParse(formula, false);
formula = formulaMap.get(1);
if(formula==null||formula.equals("")||formula.equals("0")){
return true;
}
formula = formula.replaceAll("\\$_DSESSION\\['((extcredits[1-8])|(posts)|(oltime)|(digestposts)|(pageviews))'\\]", "0").trim();
int equalMark = formula.indexOf("=");
int gtMark = formula.indexOf(">");
int ltMark = formula.indexOf("<");
if((equalMark<0&>Mark<0&<Mark<0)||(equalMark>=0)&&(gtMark>=0)&&(ltMark>=0)){
return false;
}else{
String[] expiressions = null;
String sign = "";
if(gtMark>0){
equalMark = formula.indexOf("=",gtMark+1);
if(equalMark>0){
expiressions = formula.split(">\\s*=");
sign=">=";
}else{
expiressions = formula.split(">");
sign=">";
}
}else if(ltMark>0){
equalMark = formula.indexOf("=",ltMark+1);
if(equalMark>0){
expiressions = formula.split("<\\s*=");
sign="<=";
}else{
expiressions = formula.split("<");
sign="<";
}
}else{
int secEqualMark = formula.indexOf("=",equalMark+1);
if(secEqualMark>0){
expiressions = formula.split("=\\s*=");
sign="==";
}else {
return true;
}
}
double r1 = Double.parseDouble(excute(new StringBuffer(expiressions[0].replace(" ", ""))));
double r2 = Double.parseDouble(excute(new StringBuffer(expiressions[1].replace(" ", ""))));
if(sign.equals(">=")){
return r1 >= r2;
}else if(sign.equals(">")){
return r1 > r2;
}else if(sign.equals("<=")){
return r1 <= r2;
}else if(sign.equals("<")){
return r1 < r2;
}else{
return r1 == r2;
}
}
}
private String jammer(String ALTBG2){
StringBuffer randomStr = new StringBuffer();
Random random = new Random();
for(int i = 0;i<random.nextInt(11)+5;i++){
randomStr.append((char)random.nextInt(60));
randomStr.append((char)(random.nextInt(64)+63));
}
if(random.nextBoolean()){
return "<font style=\"font-size:0px;color:"+ALTBG2+"\">"+randomStr.toString()+"</font><br />";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -