Compare commits
	
		
			10 Commits
		
	
	
		
			15ccb7ad50
			...
			master
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					f92f68c3cd | ||
| 
						 | 
					77fe66c330 | ||
| 
						 | 
					ff8c3e915a | ||
| 
						 | 
					2f5f84da4b | ||
| 
						 | 
					477acabd19 | ||
| 
						 | 
					e2cbffea30 | ||
| 
						 | 
					0261f26043 | ||
| 
						 | 
					5381c7b2a4 | ||
| 
						 | 
					015c64139d | ||
| 
						 | 
					4b08919f75 | 
							
								
								
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								LICENSE
									
									
									
									
									
								
							@@ -1,6 +1,6 @@
 | 
			
		||||
The MIT License (MIT)
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2015-2018 Jeff Becker
 | 
			
		||||
Copyright (c) 2015-2020 Jeff Becker
 | 
			
		||||
 | 
			
		||||
Permission is hereby granted, free of charge, to any person obtaining a copy
 | 
			
		||||
of this software and associated documentation files (the "Software"), to deal
 | 
			
		||||
 
 | 
			
		||||
@@ -1240,10 +1240,14 @@ func (self *nntpConnection) handleLine(daemon *NNTPDaemon, code int, line string
 | 
			
		||||
										log.Println(self.name, "got reply to", reference, "but we don't have it")
 | 
			
		||||
										go daemon.askForArticle(reference)
 | 
			
		||||
									} else {
 | 
			
		||||
										h := daemon.store.GetMIMEHeader(reference)
 | 
			
		||||
										if strings.Trim(h.Get("References"), " ") == "" {
 | 
			
		||||
											hdr.Set("References", getMessageID(h))
 | 
			
		||||
										// get rootiest post
 | 
			
		||||
										ref := reference
 | 
			
		||||
										var h textproto.MIMEHeader	
 | 
			
		||||
										for ref != "" {
 | 
			
		||||
											h = daemon.store.GetMIMEHeader(ref)
 | 
			
		||||
											ref = strings.Trim(h.Get("References"), " ")
 | 
			
		||||
										}
 | 
			
		||||
										hdr.Set("References", getMessageID(h))
 | 
			
		||||
									}
 | 
			
		||||
								} else if reference != "" {
 | 
			
		||||
									// bad message id
 | 
			
		||||
 
 | 
			
		||||
@@ -204,7 +204,7 @@ func (self *PostgresDatabase) prepareStatements() {
 | 
			
		||||
		GetMessageIDByHash:              "SELECT message_id, message_newsgroup FROM Articles WHERE message_id_hash = $1 LIMIT 1",
 | 
			
		||||
		CheckEncIPBanned:                "SELECT 1 FROM EncIPBans WHERE encaddr = $1",
 | 
			
		||||
		GetFirstAndLastForGroup:         "WITH x(min_no, max_no) AS ( SELECT MIN(message_no) AS min_no, MAX(message_no) AS max_no FROM ArticleNumbers WHERE newsgroup = $1) SELECT CASE WHEN min_no IS NULL THEN 0 ELSE min_no END AS min_no FROM x UNION SELECT CASE WHEN max_no IS NULL THEN 1 ELSE max_no END AS max_no FROM x",
 | 
			
		||||
		GetNewsgroupList:                "SELECT newsgroup, min(message_no), max(message_no) FROM ArticleNumbers GROUP BY newsgroup ORDER BY newsgroup",
 | 
			
		||||
		GetNewsgroupList:                "SELECT newsgroup, min(message_no), max(message_no) FROM ArticleNumbers WHERE newsgroup NOT IN ( SELECT newsgroup FROM bannedgroups ) GROUP BY newsgroup ORDER BY newsgroup",
 | 
			
		||||
		GetMessageIDForNNTPID:           "SELECT message_id FROM ArticleNumbers WHERE newsgroup = $1 AND message_no = $2 LIMIT 1",
 | 
			
		||||
		GetNNTPIDForMessageID:           "SELECT message_no FROM ArticleNumbers WHERE newsgroup = $1 AND message_id = $2 LIMIT 1",
 | 
			
		||||
		IsExpired:                       "WITH x(msgid) AS ( SELECT message_id FROM Articles WHERE message_id = $1 INTERSECT ( SELECT message_id FROM ArticlePosts WHERE message_id = $1 ) ) SELECT COUNT(*) FROM x",
 | 
			
		||||
 
 | 
			
		||||
@@ -42,6 +42,7 @@ func HandleStartTLS(conn net.Conn, config *tls.Config) (econn *textproto.Conn, s
 | 
			
		||||
				econn = textproto.NewConn(tconn)
 | 
			
		||||
				return
 | 
			
		||||
			} else {
 | 
			
		||||
				log.Println("tls handshake error: ", err.Error())
 | 
			
		||||
				certs := state.PeerCertificates
 | 
			
		||||
				if len(certs) == 0 {
 | 
			
		||||
					log.Println("starttls failed, no peer certs provided")
 | 
			
		||||
@@ -53,6 +54,7 @@ func HandleStartTLS(conn net.Conn, config *tls.Config) (econn *textproto.Conn, s
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
				tconn.Close()
 | 
			
		||||
				conn.Close()
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -555,3 +555,7 @@ background-repeat: repeat;
 | 
			
		||||
    font-size: 24pt;
 | 
			
		||||
    float: right;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.spam-button {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
@@ -76,10 +76,6 @@ var nntpchan_mod_action = function(mod_action, elem) {
 | 
			
		||||
            // http error
 | 
			
		||||
            elem.innerHTML = "error: HTTP "+status;
 | 
			
		||||
          }
 | 
			
		||||
          // clear input
 | 
			
		||||
          if (input) {
 | 
			
		||||
            input.value = "";
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      if (mod_action.name) {
 | 
			
		||||
 
 | 
			
		||||
@@ -853,3 +853,8 @@ th > label {
 | 
			
		||||
      :target {
 | 
			
		||||
          background-color: #493769;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
      .mod {
 | 
			
		||||
        display: none;
 | 
			
		||||
      }
 | 
			
		||||
@@ -38,7 +38,7 @@
 | 
			
		||||
            <b>Most of the rest of the wild west.</b>
 | 
			
		||||
        </div>
 | 
			
		||||
        <center><b>{{board.Name}}</b></center>
 | 
			
		||||
        <center><button onclick="nntpchan_mod_commit_spam(this)">Moderate</button></center> 
 | 
			
		||||
        <center><button class="spam-button" onclick="nntpchan_mod_commit_spam(this)">Moderate</button></center> 
 | 
			
		||||
        <br />
 | 
			
		||||
        {{{form}}}
 | 
			
		||||
        {{#board.Threads}}
 | 
			
		||||
 
 | 
			
		||||
@@ -48,7 +48,7 @@
 | 
			
		||||
            <b>Most of the rest of the wild west.</b>
 | 
			
		||||
        </div>
 | 
			
		||||
        <center><b><a href="{{thread.BoardURL}}">{{thread.Board}}</a></b></center>
 | 
			
		||||
        <center><button onclick="nntpchan_mod_commit_spam(this)">Moderate</button></center>
 | 
			
		||||
        <center><button class="spam-button" onclick="nntpchan_mod_commit_spam(this)">Moderate</button></center>
 | 
			
		||||
        <br />
 | 
			
		||||
        {{{form}}}
 | 
			
		||||
            {{#thread.BumpLock}}
 | 
			
		||||
 
 | 
			
		||||
@@ -31,7 +31,7 @@
 | 
			
		||||
        <div class="sitetitle">
 | 
			
		||||
            <h2><a href="#">CHANGOLIA</a></h2>
 | 
			
		||||
            <b>Most of the rest of the wild west.</b>
 | 
			
		||||
            <center><button onclick="nntpchan_mod_commit_spam(this)">Moderate</button></center> 
 | 
			
		||||
            <center><button class="spam-button" onclick="nntpchan_mod_commit_spam(this)">Moderate</button></center> 
 | 
			
		||||
        </div>
 | 
			
		||||
        <div id="paginator">
 | 
			
		||||
            {{#prev}}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user