Mercurial > ec-dotfiles
annotate bin/ed2k @ 746:6b7f6f09b8d1 default tip
[vimrc] fix php syntax highlight
Example file: https://github.com/ppy/osu-web/blob/e23658f45ac2e85d78bd339947e0d1cee57629c6/app/Libraries/BBCodeFromDB.php
(around the end)
| author | nanaya <me@nanaya.net> | 
|---|---|
| date | Wed, 29 Oct 2025 12:28:45 +0900 | 
| parents | 8d3ad5ae1ce4 | 
| children | 
| rev | line source | 
|---|---|
| 719 | 1 #!/usr/bin/env php | 
| 2 <?php | |
| 3 | |
| 4 function ed2k_hash(string $path): string | |
| 5 { | |
| 6 // ed2k hash is an md4 hash of concatenated binary md4 hashes of 9500 KiB file chunks. | |
| 7 static $bs = 9500 * 1024; | |
| 8 $hash = ''; | |
| 9 $fp = fopen($path, 'rb'); | |
| 4 
94ee419ad047
Added bin-ec - a collection of scripts.
 Edho Prima Arief <me@myconan.net> parents: diff
changeset | 10 | 
| 719 | 11 while (!feof($fp)) { | 
| 12 $hash .= hash('md4', fread($fp, $bs), true); | |
| 13 } | |
| 14 fclose($fp); | |
| 15 | |
| 16 return hash('md4', $hash); | |
| 17 } | |
| 4 
94ee419ad047
Added bin-ec - a collection of scripts.
 Edho Prima Arief <me@myconan.net> parents: diff
changeset | 18 | 
| 744 
8d3ad5ae1ce4
[ed2k] better? function organization and usage of argv
 nanaya <me@nanaya.net> parents: 
719diff
changeset | 19 function main(): void | 
| 
8d3ad5ae1ce4
[ed2k] better? function organization and usage of argv
 nanaya <me@nanaya.net> parents: 
719diff
changeset | 20 { | 
| 
8d3ad5ae1ce4
[ed2k] better? function organization and usage of argv
 nanaya <me@nanaya.net> parents: 
719diff
changeset | 21 $files = $_SERVER['argv']; | 
| 
8d3ad5ae1ce4
[ed2k] better? function organization and usage of argv
 nanaya <me@nanaya.net> parents: 
719diff
changeset | 22 array_shift($files); | 
| 719 | 23 | 
| 744 
8d3ad5ae1ce4
[ed2k] better? function organization and usage of argv
 nanaya <me@nanaya.net> parents: 
719diff
changeset | 24 foreach ($files as $path) { | 
| 
8d3ad5ae1ce4
[ed2k] better? function organization and usage of argv
 nanaya <me@nanaya.net> parents: 
719diff
changeset | 25 $hash = ed2k_hash($path); | 
| 
8d3ad5ae1ce4
[ed2k] better? function organization and usage of argv
 nanaya <me@nanaya.net> parents: 
719diff
changeset | 26 $filename = basename($path); | 
| 
8d3ad5ae1ce4
[ed2k] better? function organization and usage of argv
 nanaya <me@nanaya.net> parents: 
719diff
changeset | 27 $filesize = filesize($path); | 
| 
8d3ad5ae1ce4
[ed2k] better? function organization and usage of argv
 nanaya <me@nanaya.net> parents: 
719diff
changeset | 28 | 
| 
8d3ad5ae1ce4
[ed2k] better? function organization and usage of argv
 nanaya <me@nanaya.net> parents: 
719diff
changeset | 29 echo "ed2k://|file|{$filename}|{$filesize}|{$hash}|", PHP_EOL; | 
| 
8d3ad5ae1ce4
[ed2k] better? function organization and usage of argv
 nanaya <me@nanaya.net> parents: 
719diff
changeset | 30 } | 
| 719 | 31 } | 
| 744 
8d3ad5ae1ce4
[ed2k] better? function organization and usage of argv
 nanaya <me@nanaya.net> parents: 
719diff
changeset | 32 | 
| 
8d3ad5ae1ce4
[ed2k] better? function organization and usage of argv
 nanaya <me@nanaya.net> parents: 
719diff
changeset | 33 main(); | 
