Albirew/nyaa-pantsu
Archivé
1
0
Bifurcation 0

Merge pull request #168 from sfan5/unfuck

Unfuck shit
Cette révision appartient à :
Eliot Whalan 2017-05-08 07:46:55 +10:00 révisé par GitHub
révision 19195ee09e
7 fichiers modifiés avec 27 ajouts et 50 suppressions

Voir le fichier

@ -2,7 +2,7 @@
.nightswitch { .nightswitch {
position: fixed; position: fixed;
top: 12px; top: 12px;
right: 48px; right: 12px;
} }
.nightswitch > a > img { .nightswitch > a > img {
width: 24px; width: 24px;
@ -43,7 +43,7 @@
} }
#container.cont-view { #container.cont-view {
background: #29363d url(/img/megumin.png) no-repeat; background: #29363d url(/img/megumin.png) no-repeat;
background-size: 75px, 100px; background-size: 75px;
} }
body { body {
@ -178,6 +178,7 @@ div.container div.blockBody:nth-of-type(2) table tr:first-of-type th:last-of-typ
max-height: 80vh; max-height: 80vh;
} }
/* the curved edges triggered my autism */
.navbar { .navbar {
border-radius: 0px; border-radius: 0px;
} }

Voir le fichier

@ -2,7 +2,7 @@
.nightswitch { .nightswitch {
position: fixed; position: fixed;
top: 12px; top: 12px;
right: 48px; right: 12px;
} }
.nightswitch > a > img { .nightswitch > a > img {
width: 24px; width: 24px;
@ -43,7 +43,7 @@
} }
#container.cont-view { #container.cont-view {
background: white url(/img/renchon.png) no-repeat; background: white url(/img/renchon.png) no-repeat;
background-size: 75px, 100px; background-size: 61px;
} }
body { body {

Voir le fichier

@ -1,17 +1,17 @@
package router package router
import ( import(
"time"
"net/http"
"github.com/gorilla/feeds"
"github.com/ewhal/nyaa/config" "github.com/ewhal/nyaa/config"
"github.com/ewhal/nyaa/util/search" "github.com/ewhal/nyaa/util/search"
"github.com/gorilla/feeds"
"net/http"
"strconv" "strconv"
"time"
) )
func RssHandler(w http.ResponseWriter, r *http.Request) { func RssHandler(w http.ResponseWriter, r *http.Request) {
_, torrents := search.SearchByQueryNoCount(r, 1) _, torrents, _ := search.SearchByQuery( r, 1 )
created_as_time := time.Now() created_as_time := time.Now()
if len(torrents) > 0 { if len(torrents) > 0 {

Voir le fichier

@ -23,7 +23,7 @@ func SearchHandler(w http.ResponseWriter, r *http.Request) {
search_param, torrents, nbTorrents := search.SearchByQuery(r, pagenum) search_param, torrents, nbTorrents := search.SearchByQuery(r, pagenum)
for i := range torrents { for i, _ := range torrents {
res := torrents[i].ToJson() res := torrents[i].ToJson()
b = append(b, res) b = append(b, res)
} }

Voir le fichier

@ -53,28 +53,22 @@ func GetTorrentById(id string) (model.Torrents, error) {
} }
func GetTorrentsOrderBy(parameters *WhereParams, orderBy string, limit int, offset int) ([]model.Torrents, int) { func GetTorrentsOrderBy(parameters *WhereParams, orderBy string, limit int, offset int) ([]model.Torrents, int) {
return getTorrentsOrderBy(parameters, orderBy, limit, offset, true)
}
func GetTorrentsOrderByNoCount(parameters *WhereParams, orderBy string, limit int, offset int) (torrents []model.Torrents) {
torrents, _ = getTorrentsOrderBy(parameters, orderBy, limit, offset, false)
return
}
func getTorrentsOrderBy(parameters *WhereParams, orderBy string, limit int, offset int, countAll bool) ([]model.Torrents, int) {
var torrents []model.Torrents var torrents []model.Torrents
var dbQuery *gorm.DB var dbQuery *gorm.DB
var count int var count int
conditions := "torrent_hash IS NOT NULL" // filter out broken entries
conditions := "torrent_hash IS NOT NULL AND filesize > 0" //filter out broken entries if strings.HasPrefix(orderBy, "filesize") {
// torrents w/ NULL filesize fuck up the sorting on postgres
// TODO: fix this properly
conditions += " AND filesize IS NOT NULL"
}
var params []interface{} var params []interface{}
if parameters != nil { // if there is where parameters if parameters != nil { // if there is where parameters
conditions += " AND " + parameters.Conditions conditions += " AND " + parameters.Conditions
params = parameters.Params params = parameters.Params
} }
if countAll { db.ORM.Model(&torrents).Where(conditions, params...).Count(&count)
db.ORM.Model(&torrents).Where(conditions, params...).Count(&count)
}
dbQuery = db.ORM.Model(&torrents).Where(conditions, params...) dbQuery = db.ORM.Model(&torrents).Where(conditions, params...)
if orderBy == "" { // default OrderBy if orderBy == "" { // default OrderBy
@ -92,7 +86,7 @@ func getTorrentsOrderBy(parameters *WhereParams, orderBy string, limit int, offs
* Get Torrents with where parameters and limits, order by default * Get Torrents with where parameters and limits, order by default
*/ */
func GetTorrents(parameters WhereParams, limit int, offset int) ([]model.Torrents, int) { func GetTorrents(parameters WhereParams, limit int, offset int) ([]model.Torrents, int) {
return getTorrentsOrderBy(&parameters, "", limit, offset, true) return GetTorrentsOrderBy(&parameters, "", limit, offset)
} }
/* Get Torrents with where parameters but no limit and order by default (get all the torrents corresponding in the db) /* Get Torrents with where parameters but no limit and order by default (get all the torrents corresponding in the db)
@ -113,11 +107,6 @@ func GetAllTorrents(limit int, offset int) ([]model.Torrents, int) {
return GetTorrentsOrderBy(nil, "", limit, offset) return GetTorrentsOrderBy(nil, "", limit, offset)
} }
func GetAllTorrentsNoCouting(limit int, offset int) (torrents []model.Torrents) {
torrents, _ = getTorrentsOrderBy(nil, "", limit, offset, false)
return
}
func GetAllTorrentsDB() ([]model.Torrents, int) { func GetAllTorrentsDB() ([]model.Torrents, int) {
return GetTorrentsOrderBy(nil, "", 0, 0) return GetTorrentsOrderBy(nil, "", 0, 0)
} }

Voir le fichier

@ -55,7 +55,7 @@
{{block "search_button" .}}{{end}} {{block "search_button" .}}{{end}}
</div> </div>
</form> </form>
<div class="nightswitch" style="position:absolute;right:1em"> <div class="nightswitch">
<a href="javascript:toggleNightMode();" ><img id="nighticon" src="/img/moon.png"></a> <a href="javascript:toggleNightMode();" ><img id="nighticon" src="/img/moon.png"></a>
</div> </div>
</div> </div>

Voir le fichier

@ -31,16 +31,6 @@ func Init(backend string) {
} }
func SearchByQuery(r *http.Request, pagenum int) (SearchParam, []model.Torrents, int) { func SearchByQuery(r *http.Request, pagenum int) (SearchParam, []model.Torrents, int) {
return searchByQuery(r, pagenum, true)
}
func SearchByQueryNoCount(r *http.Request, pagenum int) (param SearchParam, torrents []model.Torrents) {
param, torrents, _ = searchByQuery(r, pagenum, false)
return
}
func searchByQuery(r *http.Request, pagenum int, count bool) (search_param SearchParam, torrents []model.Torrents, n int) {
maxPerPage, errConv := strconv.Atoi(r.URL.Query().Get("max")) maxPerPage, errConv := strconv.Atoi(r.URL.Query().Get("max"))
if errConv != nil { if errConv != nil {
maxPerPage = 50 // default Value maxPerPage maxPerPage = 50 // default Value maxPerPage
@ -49,6 +39,7 @@ func searchByQuery(r *http.Request, pagenum int, count bool) (search_param Searc
if maxPerPage > 300 { if maxPerPage > 300 {
maxPerPage = 300 maxPerPage = 300
} }
search_param := SearchParam{}
search_param.Max = maxPerPage search_param.Max = maxPerPage
search_param.Query = r.URL.Query().Get("q") search_param.Query = r.URL.Query().Get("q")
search_param.Category = r.URL.Query().Get("c") search_param.Category = r.URL.Query().Get("c")
@ -91,17 +82,13 @@ func searchByQuery(r *http.Request, pagenum int, count bool) (search_param Searc
parameters.Params = append(parameters.Params, search_param.Status) parameters.Params = append(parameters.Params, search_param.Status)
} }
searchQuerySplit := strings.Split(search_param.Query, " ") searchQuerySplit := strings.Split(search_param.Query, " ")
for i := range searchQuerySplit { for i, _ := range searchQuerySplit {
conditions = append(conditions, "torrent_name LIKE ?") conditions = append(conditions, "torrent_name " + search_op + " ?")
parameters.Params = append(parameters.Params, "%"+searchQuerySplit[i]+"%") parameters.Params = append(parameters.Params, "%"+searchQuerySplit[i]+"%")
} }
parameters.Conditions = strings.Join(conditions[:], " AND ") parameters.Conditions = strings.Join(conditions[:], " AND ")
log.Infof("SQL query is :: %s\n", parameters.Conditions) log.Infof("SQL query is :: %s\n", parameters.Conditions)
if count { torrents, n := torrentService.GetTorrentsOrderBy(&parameters, order_by, maxPerPage, maxPerPage*(pagenum-1))
torrents, n = torrentService.GetTorrentsOrderBy(&parameters, order_by, maxPerPage, maxPerPage*(pagenum-1)) return search_param, torrents, n
} else {
torrents = torrentService.GetTorrentsOrderByNoCount(&parameters, order_by, maxPerPage, maxPerPage*(pagenum-1))
}
return
} }