From ba177da61de3a71eb12a1bb0d29de9d73d7dfb9f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?M=C3=BCsl=C3=BCm=20Bar=C4=B1=C5=9F=20Korkmazer?=
<11800544+babico@users.noreply.github.com>
Date: Sat, 24 Apr 2021 04:43:59 +0300
Subject: [PATCH 1/8] index update
---
server.js | 98 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 89 insertions(+), 9 deletions(-)
diff --git a/server.js b/server.js
index e490d7a5d..4ec67e453 100644
--- a/server.js
+++ b/server.js
@@ -263,15 +263,95 @@ class Server extends EventEmitter {
} else if (req.url === '/stats') {
res.setHeader('Content-Type', 'text/html')
res.end(`
-
${stats.torrents} torrents (${stats.activeTorrents} active)
- Connected Peers: ${stats.peersAll}
- Peers Seeding Only: ${stats.peersSeederOnly}
- Peers Leeching Only: ${stats.peersLeecherOnly}
- Peers Seeding & Leeching: ${stats.peersSeederAndLeecher}
- IPv4 Peers: ${stats.peersIPv4}
- IPv6 Peers: ${stats.peersIPv6}
- Clients:
- ${printClients(stats.clients)}
+
+
+ Tracker Stats
+
+
+
+
+
+
Tracker Stats
+
There are ${stats.torrents} torrents, ${stats.activeTorrents} are active.
+
Connected Peers: ${stats.peersAll}
+
+
+
+
Peers Seeding Only: ${stats.peersSeederOnly}
+
Peers Leeching Only: ${stats.peersLeecherOnly}
+
Peers Seeding &; Leeching: ${stats.peersSeederAndLeecher}
+
+
+
+
IPv4 Peers: ${stats.peersIPv4}
+
IPv6 Peers: ${stats.peersIPv6}
+
+
+
+
+
Clients:
+ ${printClients(stats.clients)}
+
+
+
+
`.replace(/^\s+/gm, '')) // trim left
}
}
From dcfbca2eb4d2c53d05431860ba746d920b3d3b3c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?M=C3=BCsl=C3=BCm=20Bar=C4=B1=C5=9F=20Korkmazer?=
<11800544+babico@users.noreply.github.com>
Date: Sat, 24 Apr 2021 04:48:09 +0300
Subject: [PATCH 2/8] Index update fix
---
server.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/server.js b/server.js
index 4ec67e453..523e2796a 100644
--- a/server.js
+++ b/server.js
@@ -336,7 +336,7 @@ class Server extends EventEmitter {
Peers Seeding Only: ${stats.peersSeederOnly}
Peers Leeching Only: ${stats.peersLeecherOnly}
-
Peers Seeding &; Leeching: ${stats.peersSeederAndLeecher}
+
Peers Seeding & Leeching: ${stats.peersSeederAndLeecher}
From 9534efcc43bbc1de4dfb95864ae61a52d6f1e3cc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?M=C3=BCsl=C3=BCm=20Bar=C4=B1=C5=9F=20Korkmazer?=
<11800544+babico@users.noreply.github.com>
Date: Sat, 24 Apr 2021 04:48:43 +0300
Subject: [PATCH 3/8] Add files via upload
---
favicon.ico | Bin 0 -> 4286 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 favicon.ico
diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..652dd231d32b9e5ccc9db940abbb69d7143e664b
GIT binary patch
literal 4286
zcmcgw>r)d~6i@$ywjbKB^jrUierc=Lu~I+zU=*n{(rGI%B|+`f2ak}pHd7Rsaf%L;
zcE$$@uNaj!Qo<<0^ffviG$CLTLxQ#>o5U%3?rwg)cf&4WlMSQ+FLSc@o_p^7oyXmC
z?xIq?LjKCiRP
xO5WU7ZaHBe}_rG9`1+@9G{ft^L2QRg~QSZTbml=S`8ucY;S^h
zax9;CL7qK0gdt}YOpZMQ4LT3N$yf@mi870rJl~3O310(SYa{;b?F5^M7hEf!w9I{q
z{+WG*Dg-jk?1k0Sgaj9ni%R2YPznD+(fEVTN(r0lU?RGVxa$#R0}`IR!?P^x=4*n@
zf)A)4+BERoyCWA}b9`@JNBq85(!uE14b%NPFu~^q*Ty3u%vg*V)t$h&{xn>++hAkS
zyldDr5KQt&@T4Pak%Si$zHcx*dq^OgyBT_24Z7Q#5eYFe>D5Cnl|qlM8N-I2)e~8x
z7?*~2b_wrHhS2!#dI?-3SdHU_U-19o+BwLj2X|A+smN?`}Vf?D$J|3)sOz
zTNXVh>7Z-DbGH*SqXW2d;t&SgYT=o(!sD2RR$Yfq;`1=GvDl)r^W?qgXgY#xYLc_-
z%VDbD2~*vN7&y8MhK4=(zWvmO`CP=zex~A4jCXwrW6chNP4QRASi1v%T<=CYottB_
z_b8O`!&urx`%|RG**d=fjdhOyUqbw8ZaIIv23H$1XMpNKNjU%YyKzZJ
z@?B^pN0s7h`Pv1NQ?)dwlA8DIi5(8B5mUWi;nyF&g==C2?#F+Tx+&J~jnzTSYx3NZ
zCOI(seUoz3I_?j0`;^8Mo7yeMR+1NL);jJFO6#-vey@Ak=f&mJj32~U6jy_yF&^fh
zLbzyHz-je467S-$Mg3RDB1FD#I54qAgyI2kq_5OQ#=hR@iXyTiRFYL{?`2Rv4DNhycHSRg6do4
zdGRST9_JBx!Ig|n_hMoMpZJ{GE#g!AKe_c0o!<1ulX^_!O)(EHQ`L=a=zZ9+>DVFw
XJ!>@H)i=upyD2v1$^Relvd8}c6a
literal 0
HcmV?d00001
From cccfb65bef12f58ff6ced1027d25e23851f285f4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?M=C3=BCsl=C3=BCm=20Bar=C4=B1=C5=9F=20Korkmazer?=
<11800544+babico@users.noreply.github.com>
Date: Sat, 24 Apr 2021 04:55:47 +0300
Subject: [PATCH 4/8] Update README.md
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 1ac360579..85dda3a8a 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
[downloads-url]: https://npmjs.org/package/bittorrent-tracker
[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg
[standard-url]: https://standardjs.com
-
+#UPDATED STATS INDEX
#### Simple, robust, BitTorrent tracker (client & server) implementation

From 076805ae37fae85a804b3ebbf02b57972173702a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?M=C3=BCsl=C3=BCm=20Bar=C4=B1=C5=9F=20Korkmazer?=
<11800544+babico@users.noreply.github.com>
Date: Sat, 24 Apr 2021 04:56:07 +0300
Subject: [PATCH 5/8] Update README.md
---
README.md | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 85dda3a8a..6bedee0ef 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,9 @@
[downloads-url]: https://npmjs.org/package/bittorrent-tracker
[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg
[standard-url]: https://standardjs.com
-#UPDATED STATS INDEX
+
+# UPDATED STATS INDEX #
+
#### Simple, robust, BitTorrent tracker (client & server) implementation

From 5af58b72ab88696bcf8aee2548bfa68a52ef0c32 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?M=C3=BCsl=C3=BCm=20Bar=C4=B1=C5=9F=20Korkmazer?=
<11800544+babico@users.noreply.github.com>
Date: Sat, 24 Apr 2021 05:02:27 +0300
Subject: [PATCH 6/8] Update README.md
---
README.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index 6bedee0ef..a2fc8ee41 100644
--- a/README.md
+++ b/README.md
@@ -42,12 +42,12 @@ Also see [bittorrent-dht](https://www.npmjs.com/package/bittorrent-dht).
### Tracker stats
-
+
## install
-```
-npm install bittorrent-tracker
+```sh
+npm install https://github.com/babico/bittorrent-tracker.git --save
```
## usage
@@ -247,7 +247,7 @@ Client.scrape({ announce: announceUrl, infoHash: [ infoHash1, infoHash2 ]}, func
Install `bittorrent-tracker` globally:
```sh
-$ npm install -g bittorrent-tracker
+$ npm install -g https://github.com/babico/bittorrent-tracker.git --save
```
Easily start a tracker server:
From 3e7dc6786f338182ee0d8b8099da2b860c110f2d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?M=C3=BCsl=C3=BCm=20Bar=C4=B1=C5=9F=20Korkmazer?=
<11800544+babico@users.noreply.github.com>
Date: Tue, 25 Jan 2022 08:34:44 +0300
Subject: [PATCH 7/8] 30min interval
---
server.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/server.js b/server.js
index e71021343..f4854ab82 100644
--- a/server.js
+++ b/server.js
@@ -39,7 +39,7 @@ class Server extends EventEmitter {
this.intervalMs = opts.interval
? opts.interval
- : 10 * 60 * 1000 // 10 min
+ : 30 * 60 * 1000 // 10 min
this._trustProxy = !!opts.trustProxy
if (typeof opts.filter === 'function') this._filter = opts.filter
From 78147ad260b36ee42acfc95000224e84744b4c3c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?M=C3=BCsl=C3=BCm=20Bar=C4=B1=C5=9F=20Korkmazer?=
Date: Fri, 11 Aug 2023 20:59:20 +0300
Subject: [PATCH 8/8] add: changed index test
---
package.json | 1 +
server.js | 16 ++++++++--------
test/stats.js | 28 +++++++++++-----------------
3 files changed, 20 insertions(+), 25 deletions(-)
diff --git a/package.json b/package.json
index 9d537a8a1..5232dafe7 100644
--- a/package.json
+++ b/package.json
@@ -36,6 +36,7 @@
"compact2string": "^1.4.1",
"debug": "^4.1.1",
"ip": "^1.1.5",
+ "jsdom": "^22.1.0",
"lru": "^3.1.0",
"minimist": "^1.2.5",
"once": "^1.4.0",
diff --git a/server.js b/server.js
index ee4c9e255..dba45cda1 100644
--- a/server.js
+++ b/server.js
@@ -331,25 +331,25 @@ class Server extends EventEmitter {
Tracker Stats
-
There are ${stats.torrents} torrents, ${stats.activeTorrents} are active.
-
Connected Peers: ${stats.peersAll}
+
There are
${stats.torrents}
torrents,
${stats.activeTorrents}
are active.
+
Connected Peers:
${stats.peersAll}
-
Peers Seeding Only: ${stats.peersSeederOnly}
-
Peers Leeching Only: ${stats.peersLeecherOnly}
-
Peers Seeding & Leeching: ${stats.peersSeederAndLeecher}
+
Peers Seeding Only:
+
Peers Leeching Only:
${stats.peersLeecherOnly}
+
Peers Seeding & Leeching:
${stats.peersSeederAndLeecher}
-
IPv4 Peers: ${stats.peersIPv4}
-
IPv6 Peers: ${stats.peersIPv6}
+
IPv4 Peers:
${stats.peersIPv4}
+
IPv6 Peers:
${stats.peersIPv6}
Clients:
- ${printClients(stats.clients)}
+
${printClients(stats.clients)}
diff --git a/test/stats.js b/test/stats.js
index 3ffa3fe3f..c3e542429 100644
--- a/test/stats.js
+++ b/test/stats.js
@@ -3,29 +3,23 @@ import commonTest from './common.js'
import fixtures from 'webtorrent-fixtures'
import get from 'simple-get'
import test from 'tape'
+import jsdom from 'jsdom'
const peerId = Buffer.from('-WW0091-4ea5886ce160')
const unknownPeerId = Buffer.from('01234567890123456789')
function parseHtml (html) {
- const extractValue = /[^v^h](\d+)/
- const array = html.replace('torrents', '\n').split('\n').filter(line => line && line.trim().length > 0).map(line => {
- const a = extractValue.exec(line)
- if (a) {
- return parseInt(a[1])
- }
- return null
- })
- let i = 0
+ const dom = new jsdom.JSDOM(html)
+
return {
- torrents: array[i++],
- activeTorrents: array[i++],
- peersAll: array[i++],
- peersSeederOnly: array[i++],
- peersLeecherOnly: array[i++],
- peersSeederAndLeecher: array[i++],
- peersIPv4: array[i++],
- peersIPv6: array[i]
+ torrents: parseInt(dom.window.document.getElementById('torrents').textContent),
+ activeTorrents: parseInt(dom.window.document.getElementById('activeTorrents').textContent),
+ peersAll: parseInt(dom.window.document.getElementById('peersAll').textContent),
+ peersSeederOnly: parseInt(dom.window.document.getElementById('peersSeederOnly').textContent),
+ peersLeecherOnly: parseInt(dom.window.document.getElementById('peersLeecherOnly').textContent),
+ peersSeederAndLeecher: parseInt(dom.window.document.getElementById('peersSeederAndLeecher').textContent),
+ peersIPv4: parseInt(dom.window.document.getElementById('peersIPv4').textContent),
+ peersIPv6: parseInt(dom.window.document.getElementById('peersIPv6').textContent)
}
}