Merge pull request #7 from akuma06/master
Rearranged static Files and add number of item per page
Cette révision appartient à :
révision
65ec06b32d
5 fichiers modifiés avec 101 ajouts et 48 suppressions
1
.gitignore
externe
1
.gitignore
externe
|
@ -2,3 +2,4 @@
|
||||||
*.db
|
*.db
|
||||||
main
|
main
|
||||||
nyaa
|
nyaa
|
||||||
|
nyaa-master.exe
|
13
css/style.css
Fichier normal
13
css/style.css
Fichier normal
|
@ -0,0 +1,13 @@
|
||||||
|
.navbar {
|
||||||
|
background: linear-gradient(to bottom, #76eda0 0%,#1ad87f 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
|
||||||
|
}
|
||||||
|
|
||||||
|
.remake {
|
||||||
|
background-color: #f0b0b0;
|
||||||
|
}
|
||||||
|
.trusted {
|
||||||
|
background-color: #98d9a8;
|
||||||
|
}
|
||||||
|
.aplus {
|
||||||
|
background-color: #60b0f0;
|
||||||
|
}
|
65
index.html
65
index.html
|
@ -17,18 +17,10 @@
|
||||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
||||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
|
|
||||||
|
<!-- Website CSS -->
|
||||||
|
<link rel="stylesheet" href="css/style.css">
|
||||||
</head>
|
</head>
|
||||||
<style>
|
|
||||||
.remake {
|
|
||||||
background-color: #f0b0b0;
|
|
||||||
}
|
|
||||||
.trusted {
|
|
||||||
background-color: #98d9a8;
|
|
||||||
}
|
|
||||||
.aplus {
|
|
||||||
background-color: #60b0f0;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<body>
|
<body>
|
||||||
<nav class="navbar navbar-default">
|
<nav class="navbar navbar-default">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
|
@ -67,6 +59,24 @@
|
||||||
<option value="5_11" {{if eq .Category "5_11"}}selected{{end}}>Live Action - Raw</option>
|
<option value="5_11" {{if eq .Category "5_11"}}selected{{end}}>Live Action - Raw</option>
|
||||||
</select>
|
</select>
|
||||||
<input name="q" class="form-control" placeholder="Search" type="text">
|
<input name="q" class="form-control" placeholder="Search" type="text">
|
||||||
|
<select name="max" class="form-control" value>
|
||||||
|
<option value="">Nb Item per Page</option>
|
||||||
|
<option value="5" {{if eq .QueryRecordCount 5}}selected{{end}}>5</option>
|
||||||
|
<option value="10" {{if eq .QueryRecordCount 10}}selected{{end}}>10</option>
|
||||||
|
<option value="15" {{if eq .QueryRecordCount 15}}selected{{end}}>15</option>
|
||||||
|
<option value="20" {{if eq .QueryRecordCount 20}}selected{{end}}>20</option>
|
||||||
|
<option value="25" {{if eq .QueryRecordCount 25}}selected{{end}}>25</option>
|
||||||
|
<option value="30" {{if eq .QueryRecordCount 30}}selected{{end}}>30</option>
|
||||||
|
<option value="35" {{if eq .QueryRecordCount 35}}selected{{end}}>35</option>
|
||||||
|
<option value="40" {{if eq .QueryRecordCount 40}}selected{{end}}>40</option>
|
||||||
|
<option value="45" {{if eq .QueryRecordCount 45}}selected{{end}}>45</option>
|
||||||
|
<option value="50" {{if eq .QueryRecordCount 50}}selected{{end}}>50</option>
|
||||||
|
<option value="70" {{if eq .QueryRecordCount 70}}selected{{end}}>70</option>
|
||||||
|
<option value="100" {{if eq .QueryRecordCount 100}}selected{{end}}>100</option>
|
||||||
|
<option value="150" {{if eq .QueryRecordCount 150}}selected{{end}}>150</option>
|
||||||
|
<option value="200" {{if eq .QueryRecordCount 200}}selected{{end}}>200</option>
|
||||||
|
<option value="300" {{if eq .QueryRecordCount 300}}selected{{end}}>300</option>
|
||||||
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<button type="submit" class="btn btn-default">Search for Torrents</button>
|
<button type="submit" class="btn btn-default">Search for Torrents</button>
|
||||||
</form>
|
</form>
|
||||||
|
@ -122,37 +132,8 @@
|
||||||
<!-- Include all compiled plugins (below), or include individual files as needed -->
|
<!-- Include all compiled plugins (below), or include individual files as needed -->
|
||||||
<!-- Latest compiled and minified JavaScript -->
|
<!-- Latest compiled and minified JavaScript -->
|
||||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
|
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
|
||||||
<script type="text/javascript" charset="utf-8">
|
|
||||||
var pathArray = window.location.pathname.split( '/' );
|
|
||||||
var query = window.location.search;
|
|
||||||
var page = parseInt(pathArray[2]);
|
|
||||||
var pageString = "/page/";
|
|
||||||
|
|
||||||
var next = page + 1;
|
<!-- Main Javascript File -->
|
||||||
var prev = page - 1;
|
<script type="text/javascript" charset="utf-8" src="js/main.js"></script>
|
||||||
|
|
||||||
if (prev < 1) {
|
|
||||||
prev = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isNaN(page)) {
|
|
||||||
next = 2;
|
|
||||||
prev = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (query != "") {
|
|
||||||
pageString = "/search/";
|
|
||||||
}
|
|
||||||
|
|
||||||
var maxId = 5;
|
|
||||||
for (var i = 0; i < maxId; i++) {
|
|
||||||
var el = document.getElementById('page-' + i), n = next + i;
|
|
||||||
el.href = pageString + n + query;
|
|
||||||
el.innerHTML = n;
|
|
||||||
}
|
|
||||||
|
|
||||||
document.getElementById('page-next').href = pageString + next + query;
|
|
||||||
document.getElementById('page-prev').href = pageString + prev + query;
|
|
||||||
</script>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
30
js/main.js
Fichier normal
30
js/main.js
Fichier normal
|
@ -0,0 +1,30 @@
|
||||||
|
var pathArray = window.location.pathname.split( '/' );
|
||||||
|
var query = window.location.search;
|
||||||
|
var page = parseInt(pathArray[2]);
|
||||||
|
var pageString = "/page/";
|
||||||
|
|
||||||
|
var next = page + 1;
|
||||||
|
var prev = page - 1;
|
||||||
|
|
||||||
|
if (prev < 1) {
|
||||||
|
prev = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isNaN(page)) {
|
||||||
|
next = 2;
|
||||||
|
prev = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (query != "") {
|
||||||
|
pageString = "/search/";
|
||||||
|
}
|
||||||
|
|
||||||
|
var maxId = 5;
|
||||||
|
for (var i = 0; i < maxId; i++) {
|
||||||
|
var el = document.getElementById('page-' + i), n = next + i;
|
||||||
|
el.href = pageString + n + query;
|
||||||
|
el.innerHTML = n;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById('page-next').href = pageString + next + query;
|
||||||
|
document.getElementById('page-prev').href = pageString + prev + query;
|
40
main.go
40
main.go
|
@ -116,17 +116,27 @@ func singleapiHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
func searchHandler(w http.ResponseWriter, r *http.Request) {
|
func searchHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
vars := mux.Vars(r)
|
vars := mux.Vars(r)
|
||||||
page := vars["page"]
|
page := vars["page"]
|
||||||
|
|
||||||
|
// db params url
|
||||||
|
maxPerPage, errConv := strconv.Atoi(r.URL.Query().Get("max"));
|
||||||
|
if (errConv != nil) {
|
||||||
|
maxPerPage = 50 // default Value maxPerPage
|
||||||
|
}
|
||||||
pagenum, _ := strconv.Atoi(html.EscapeString(page))
|
pagenum, _ := strconv.Atoi(html.EscapeString(page))
|
||||||
param1 := r.URL.Query().Get("q")
|
param1 := r.URL.Query().Get("q")
|
||||||
cat := r.URL.Query().Get("c")
|
cat := r.URL.Query().Get("c")
|
||||||
param2 := strings.Split(cat, "_")[0]
|
param2 := strings.Split(cat, "_")[0]
|
||||||
param3 := strings.Split(cat, "_")[1]
|
param3 := strings.Split(cat, "_")[1]
|
||||||
|
|
||||||
|
nbTorrents := 0
|
||||||
|
|
||||||
b := Record{Category: cat, Records: []Records{}}
|
b := Record{Category: cat, Records: []Records{}}
|
||||||
rows, err := dbHandle.Query("select torrent_id, torrent_name, status_id, torrent_hash from torrents "+
|
rows, err := dbHandle.Query("select torrent_id, torrent_name, status_id, torrent_hash from torrents "+
|
||||||
"where torrent_name LIKE ? AND category_id LIKE ? AND sub_category_id LIKE ? "+
|
"where torrent_name LIKE ? AND category_id LIKE ? AND sub_category_id LIKE ? "+
|
||||||
"ORDER BY torrent_id DESC LIMIT 50 offset ?",
|
"ORDER BY torrent_id DESC LIMIT ? offset ?",
|
||||||
"%"+html.EscapeString(param1)+"%", html.EscapeString(param2)+"%", html.EscapeString(param3)+"%", 50*(pagenum-1))
|
"%"+html.EscapeString(param1)+"%", html.EscapeString(param2)+"%", html.EscapeString(param3)+"%", maxPerPage, maxPerPage*(pagenum-1))
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
|
nbTorrents++
|
||||||
var id, name, hash, magnet string
|
var id, name, hash, magnet string
|
||||||
var status int
|
var status int
|
||||||
rows.Scan(&id, &name, &status, &hash)
|
rows.Scan(&id, &name, &status, &hash)
|
||||||
|
@ -141,6 +151,8 @@ func searchHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
b.Records = append(b.Records, res)
|
b.Records = append(b.Records, res)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
b.QueryRecordCount = maxPerPage
|
||||||
|
b.TotalRecordCount = nbTorrents
|
||||||
rows.Close()
|
rows.Close()
|
||||||
|
|
||||||
err = templates.ExecuteTemplate(w, "index.html", &b)
|
err = templates.ExecuteTemplate(w, "index.html", &b)
|
||||||
|
@ -155,10 +167,19 @@ func safe(s string) template.URL {
|
||||||
func rootHandler(w http.ResponseWriter, r *http.Request) {
|
func rootHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
vars := mux.Vars(r)
|
vars := mux.Vars(r)
|
||||||
page := vars["page"]
|
page := vars["page"]
|
||||||
|
|
||||||
|
// db params url
|
||||||
|
maxPerPage, errConv := strconv.Atoi(r.URL.Query().Get("max"));
|
||||||
|
if (errConv != nil) {
|
||||||
|
maxPerPage = 50 // default Value maxPerPage
|
||||||
|
}
|
||||||
|
|
||||||
|
nbTorrents := 0
|
||||||
pagenum, _ := strconv.Atoi(html.EscapeString(page))
|
pagenum, _ := strconv.Atoi(html.EscapeString(page))
|
||||||
b := Record{Category: "_", Records: []Records{}}
|
b := Record{Category: "_", Records: []Records{}}
|
||||||
rows, err := dbHandle.Query("select torrent_id, torrent_name, status_id, torrent_hash from torrents ORDER BY torrent_id DESC LIMIT 50 offset ?", 50*(pagenum-1))
|
rows, err := dbHandle.Query("select torrent_id, torrent_name, status_id, torrent_hash from torrents ORDER BY torrent_id DESC LIMIT ? offset ?", maxPerPage, maxPerPage*(pagenum-1))
|
||||||
for rows.Next() {
|
for rows.Next() {
|
||||||
|
nbTorrents++
|
||||||
var id, name, hash, magnet string
|
var id, name, hash, magnet string
|
||||||
var status int
|
var status int
|
||||||
rows.Scan(&id, &name, &status, &hash)
|
rows.Scan(&id, &name, &status, &hash)
|
||||||
|
@ -173,8 +194,8 @@ func rootHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
b.Records = append(b.Records, res)
|
b.Records = append(b.Records, res)
|
||||||
|
|
||||||
}
|
}
|
||||||
b.QueryRecordCount = 50
|
b.QueryRecordCount = maxPerPage
|
||||||
b.TotalRecordCount = 1473098
|
b.TotalRecordCount = nbTorrents
|
||||||
rows.Close()
|
rows.Close()
|
||||||
err = templates.ExecuteTemplate(w, "index.html", &b)
|
err = templates.ExecuteTemplate(w, "index.html", &b)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -188,6 +209,11 @@ func main() {
|
||||||
dbHandle = getDBHandle()
|
dbHandle = getDBHandle()
|
||||||
router := mux.NewRouter()
|
router := mux.NewRouter()
|
||||||
|
|
||||||
|
cssHandler := http.FileServer(http.Dir("./css/"))
|
||||||
|
jsHandler := http.FileServer(http.Dir("./js/"))
|
||||||
|
http.Handle("/css/", http.StripPrefix("/css/", cssHandler))
|
||||||
|
http.Handle("/js/", http.StripPrefix("/js/", jsHandler))
|
||||||
|
|
||||||
// Routes,
|
// Routes,
|
||||||
router.HandleFunc("/", rootHandler)
|
router.HandleFunc("/", rootHandler)
|
||||||
router.HandleFunc("/page/{page}", rootHandler)
|
router.HandleFunc("/page/{page}", rootHandler)
|
||||||
|
@ -195,9 +221,11 @@ func main() {
|
||||||
router.HandleFunc("/search/{page}", searchHandler)
|
router.HandleFunc("/search/{page}", searchHandler)
|
||||||
router.HandleFunc("/api/{page}", apiHandler).Methods("GET")
|
router.HandleFunc("/api/{page}", apiHandler).Methods("GET")
|
||||||
router.HandleFunc("/api/torrent/{id}", singleapiHandler).Methods("GET")
|
router.HandleFunc("/api/torrent/{id}", singleapiHandler).Methods("GET")
|
||||||
|
|
||||||
|
http.Handle("/", router)
|
||||||
|
|
||||||
// Set up server,
|
// Set up server,
|
||||||
srv := &http.Server{
|
srv := &http.Server{
|
||||||
Handler: router,
|
|
||||||
Addr: "localhost:9999",
|
Addr: "localhost:9999",
|
||||||
WriteTimeout: 15 * time.Second,
|
WriteTimeout: 15 * time.Second,
|
||||||
ReadTimeout: 15 * time.Second,
|
ReadTimeout: 15 * time.Second,
|
||||||
|
|
Référencer dans un nouveau ticket