* [WIP] Torrent Generation on not found error As asked in #1517, it allows on-the-fly torrent generation. Since it uses magnet links, it needs some time to connect to peers. So it can't be instant generation, we need the user to wait and try after a minute at least. * Replace Fatal by simple error * attempt at fixing travis * del * Add Anacrolyx dependency * Add back difflib * Remove .torrent suffix in the url example * Add some explanations when file missing page shown * Ignore downloads directory * Either use cache (third-party site) or own download directory * Wrong import * If there is an error then it means we aren't generating a torrent file May it be "torrent not found" or "We do not store torrent files" which are the two only existing errors for this page * hash is never empty * TorrentLink may be empty at times So we add a /download/:hash link if it is * Update README.md * Made a mistake here, need to check if false * Update en-us.all.json * Update CHANGELOG.md * Torrent file generation can be triggered by click on button if JS enabled * Update download.go * Update download.go * Use c.JSON instead of text/template * Return to default behavior if we don't generate the file * Don't do the query if returned to default behavior * Add "Could not generate torrent file" error * Fix JS condition & lower delay until button updates * Start download automatically once torrent file is generated * Fix torrentFileExists() constantly returning false if external torrent download URL * torrent-view-data is two tables instead of one This allows the removal of useless things without any problem (e.g Website link), but also a better responsibe design since the previous one separated stats after a certain res looking very wonky * CSS changes to go along * Remove useless <b></b> * Update main.css * In torrentFileExists, check if filestorage path exists instead of looking at the domain in torrent link When checking if the file is stored on another server i used to simply check if the domain name was inside the torrent link, but we can straight up check for filestorage length * Fix JS of on-demand stat fetching * ScrapeAge variable accessible through view.jet.html Contains last scraped time in hours, is at -1 is torrent has never been scraped Stats will get updated if it's either at -1 or above 1460 (2 months old) * Refresh stats if older than two months OR unknown and older than 24h Show last scraped date even if stats are unknown * Add StatsObsolete variable to torrent Indicating if: - They can be shown - They need to be updated * Update scraped data even if Unknown, prevent users from trying to fetch stats every seconds * Torrent file stored locally by default * no need to do all of that if no filestorage * fix filestorage path * Fix torrent download button stuck on "Generating torrent file" at rare times * fix some css rules that didn't work on IE * Fix panic error Seems like this error is a known bug from anacrolyx torrent https://github.com/anacrolix/torrent/issues/83 To prevent it, I'm creating a single client and modifying the socket.go to make it not raise a panic but a simple error log.
84 lignes
5,1 Kio
Markdown
84 lignes
5,1 Kio
Markdown
murmur3
|
|
=======
|
|
|
|
Native Go implementation of Austin Appleby's third MurmurHash revision (aka
|
|
MurmurHash3).
|
|
|
|
Reference algorithm has been slightly hacked as to support the streaming mode
|
|
required by Go's standard [Hash interface](http://golang.org/pkg/hash/#Hash).
|
|
|
|
|
|
Benchmarks
|
|
----------
|
|
|
|
Go tip as of 2014-06-12 (i.e almost go1.3), core i7 @ 3.4 Ghz. All runs
|
|
include hasher instantiation and sequence finalization.
|
|
|
|
<pre>
|
|
|
|
Benchmark32_1 500000000 7.69 ns/op 130.00 MB/s
|
|
Benchmark32_2 200000000 8.83 ns/op 226.42 MB/s
|
|
Benchmark32_4 500000000 7.99 ns/op 500.39 MB/s
|
|
Benchmark32_8 200000000 9.47 ns/op 844.69 MB/s
|
|
Benchmark32_16 100000000 12.1 ns/op 1321.61 MB/s
|
|
Benchmark32_32 100000000 18.3 ns/op 1743.93 MB/s
|
|
Benchmark32_64 50000000 30.9 ns/op 2071.64 MB/s
|
|
Benchmark32_128 50000000 57.6 ns/op 2222.96 MB/s
|
|
Benchmark32_256 20000000 116 ns/op 2188.60 MB/s
|
|
Benchmark32_512 10000000 226 ns/op 2260.59 MB/s
|
|
Benchmark32_1024 5000000 452 ns/op 2263.73 MB/s
|
|
Benchmark32_2048 2000000 891 ns/op 2296.02 MB/s
|
|
Benchmark32_4096 1000000 1787 ns/op 2290.92 MB/s
|
|
Benchmark32_8192 500000 3593 ns/op 2279.68 MB/s
|
|
Benchmark128_1 100000000 26.1 ns/op 38.33 MB/s
|
|
Benchmark128_2 100000000 29.0 ns/op 69.07 MB/s
|
|
Benchmark128_4 50000000 29.8 ns/op 134.17 MB/s
|
|
Benchmark128_8 50000000 31.6 ns/op 252.86 MB/s
|
|
Benchmark128_16 100000000 26.5 ns/op 603.42 MB/s
|
|
Benchmark128_32 100000000 28.6 ns/op 1117.15 MB/s
|
|
Benchmark128_64 50000000 35.5 ns/op 1800.97 MB/s
|
|
Benchmark128_128 50000000 50.9 ns/op 2515.50 MB/s
|
|
Benchmark128_256 20000000 76.9 ns/op 3330.11 MB/s
|
|
Benchmark128_512 20000000 135 ns/op 3769.09 MB/s
|
|
Benchmark128_1024 10000000 250 ns/op 4094.38 MB/s
|
|
Benchmark128_2048 5000000 477 ns/op 4290.75 MB/s
|
|
Benchmark128_4096 2000000 940 ns/op 4353.29 MB/s
|
|
Benchmark128_8192 1000000 1838 ns/op 4455.47 MB/s
|
|
|
|
</pre>
|
|
|
|
|
|
<pre>
|
|
|
|
benchmark Go1.0 MB/s Go1.1 MB/s speedup Go1.2 MB/s speedup Go1.3 MB/s speedup
|
|
Benchmark32_1 98.90 118.59 1.20x 114.79 0.97x 130.00 1.13x
|
|
Benchmark32_2 168.04 213.31 1.27x 210.65 0.99x 226.42 1.07x
|
|
Benchmark32_4 414.01 494.19 1.19x 490.29 0.99x 500.39 1.02x
|
|
Benchmark32_8 662.19 836.09 1.26x 836.46 1.00x 844.69 1.01x
|
|
Benchmark32_16 917.46 1304.62 1.42x 1297.63 0.99x 1321.61 1.02x
|
|
Benchmark32_32 1141.93 1737.54 1.52x 1728.24 0.99x 1743.93 1.01x
|
|
Benchmark32_64 1289.47 2039.51 1.58x 2038.20 1.00x 2071.64 1.02x
|
|
Benchmark32_128 1299.23 2097.63 1.61x 2177.13 1.04x 2222.96 1.02x
|
|
Benchmark32_256 1369.90 2202.34 1.61x 2213.15 1.00x 2188.60 0.99x
|
|
Benchmark32_512 1399.56 2255.72 1.61x 2264.49 1.00x 2260.59 1.00x
|
|
Benchmark32_1024 1410.90 2285.82 1.62x 2270.99 0.99x 2263.73 1.00x
|
|
Benchmark32_2048 1422.14 2297.62 1.62x 2269.59 0.99x 2296.02 1.01x
|
|
Benchmark32_4096 1420.53 2307.81 1.62x 2273.43 0.99x 2290.92 1.01x
|
|
Benchmark32_8192 1424.79 2312.87 1.62x 2286.07 0.99x 2279.68 1.00x
|
|
Benchmark128_1 8.32 30.15 3.62x 30.84 1.02x 38.33 1.24x
|
|
Benchmark128_2 16.38 59.72 3.65x 59.37 0.99x 69.07 1.16x
|
|
Benchmark128_4 32.26 112.96 3.50x 114.24 1.01x 134.17 1.17x
|
|
Benchmark128_8 62.68 217.88 3.48x 218.18 1.00x 252.86 1.16x
|
|
Benchmark128_16 128.47 451.57 3.51x 474.65 1.05x 603.42 1.27x
|
|
Benchmark128_32 246.18 910.42 3.70x 871.06 0.96x 1117.15 1.28x
|
|
Benchmark128_64 449.05 1477.64 3.29x 1449.24 0.98x 1800.97 1.24x
|
|
Benchmark128_128 762.61 2222.42 2.91x 2217.30 1.00x 2515.50 1.13x
|
|
Benchmark128_256 1179.92 3005.46 2.55x 2931.55 0.98x 3330.11 1.14x
|
|
Benchmark128_512 1616.51 3590.75 2.22x 3592.08 1.00x 3769.09 1.05x
|
|
Benchmark128_1024 1964.36 3979.67 2.03x 4034.01 1.01x 4094.38 1.01x
|
|
Benchmark128_2048 2225.07 4156.93 1.87x 4244.17 1.02x 4290.75 1.01x
|
|
Benchmark128_4096 2360.15 4299.09 1.82x 4392.35 1.02x 4353.29 0.99x
|
|
Benchmark128_8192 2411.50 4356.84 1.81x 4480.68 1.03x 4455.47 0.99x
|
|
|
|
</pre>
|
|
|