staff
1,118
edits
(Added instructions about missing Debian packages) |
({{Avdump-current-version}}) |
||
(6 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
{{TOCright}} | |||
{{eyecatch|WARNING|This article was written for [[Avdump2]]. The current latest version is {{Avdump-current-version}}, and the steps in this article have not yet been explicitly verified against {{Avdump-current-version}}.}} | |||
[[Avdump2]] was developed on Windows, for Windows. Thanks to Mono it’s possible to run Avdump2 on Linux and all efforts are made to support all features on Linux as well, but handling every peculiarity of every Mono version on every Linux installation is beyond the scope of Avdump2 at this time. Therefore, some things just don’t work on Linux, or at least not right away, without some workarounds. | [[Avdump2]] was developed on Windows, for Windows. Thanks to Mono it’s possible to run Avdump2 on Linux and all efforts are made to support all features on Linux as well, but handling every peculiarity of every Mono version on every Linux installation is beyond the scope of Avdump2 at this time. Therefore, some things just don’t work on Linux, or at least not right away, without some workarounds. | ||
Line 7: | Line 9: | ||
=== Mono === | === Mono === | ||
Avdump2 has successfully been tested with Mono 2.4 on Ubuntu | Avdump2 has successfully been tested with Mono 2.4 on Ubuntu, with Mono 2.8 on Gentoo, and Mono 5.20 on openSUSE Tumbleweed. | ||
'''<tt>Avdump2CL.exe</tt> looks like a Windows .exe, how do I start it?''' | '''<tt>Avdump2CL.exe</tt> looks like a Windows .exe, how do I start it?''' | ||
Line 51: | Line 53: | ||
If you have a file with bogus characters in its name, even changing the locale won’t help. You have to rename the file to something sensible. | If you have a file with bogus characters in its name, even changing the locale won’t help. You have to rename the file to something sensible. | ||
=== dotnet === | |||
Avdump2 also works on Linux via '''dotnet'''; it is about 30% faster than running it via '''mono''', but appears to work with ASCII filenames only. | |||
Create a <tt>AVDump2CL.runtimeconfig.json</tt> in the folder that contains '''AVDump2CL.exe''' with the following content: | |||
<pre>{ | |||
"runtimeOptions": { | |||
"configProperties": { | |||
"System.GC.Server": true, | |||
"System.GC.Concurrent": true, | |||
"System.Threading.ThreadPool.MinThreads": 6, | |||
"System.Threading.ThreadPool.MaxThreads": 24 | |||
}, | |||
"tfm": "netcoreapp3.1", | |||
"framework": { | |||
"name": "Microsoft.NETCore.App", | |||
"version": "3.1.1" | |||
}, | |||
"applyPatches": true, | |||
"rollForwardOnNoCandidateFx": 1 | |||
} | |||
}</pre> | |||
Move the Linux lib to the DLL filename so '''dotnet''' finds it | |||
<pre>mv MediaInfo_x64.dll MediaInfo_x64.dll.windows | |||
cp -a libMediaInfo_x64.so MediaInfo_x64.dll | |||
</pre> | |||
== Workarounds == | == Workarounds == | ||
Line 71: | Line 99: | ||
export LD_LIBRARY_PATH=${AVDUMP2_HOME} | export LD_LIBRARY_PATH=${AVDUMP2_HOME} | ||
# fix bug with ncurses 6.1+ | |||
# mono/issues/6752 | |||
export TERM=xterm | |||
# If libMediaInfo still can't be found, uncomment this. | # If libMediaInfo still can't be found, uncomment this. | ||
Line 91: | Line 123: | ||
setterm -cursor on | setterm -cursor on | ||
fi | fi | ||
</pre> | |||
== Making Your Life Easier == | |||
When you made sure everything works fine, if you just want to easily hash files and generate ED2K links for adding new files, you could use this roughly-made Python 2 script. (best paired with Nautilus or Nemo actions) | |||
Please note that this script relies on Zenity extension to display the dialog containing the generated ED2K links. If you get an error running this script, please make sure you have it installed. | |||
<pre> | |||
#!/usr/bin/python | |||
import sys, os, subprocess | |||
### EDIT THE FOLLOWING ACCORDING TO YOUR INFO | |||
AVDUMP2CL_PATH = "/path/to/your/AVDump2CL.exe" | |||
USERNAME = " " | |||
API_KEY = " " | |||
### | |||
command = "mono %s --Auth=%s:%s --PrintEd2kLink -q" % (AVDUMP2CL_PATH, USERNAME, API_KEY) | |||
for arg in sys.argv[1:]: | |||
command += " \"%s\"" % arg | |||
output = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) | |||
output = output.stdout.readlines() | |||
ed2k = "" | |||
for line in output: | |||
if line[0:4] == "ed2k": | |||
ed2k += line | |||
os.system("zenity --info --text '%s'" % ed2k.rstrip()) | |||
</pre> | </pre> | ||
Line 105: | Line 168: | ||
Avdump2 exits with a return code of 0 on some errors, so don’t rely on the return code. It exits with a non-zero code on most serious errors, though. | Avdump2 exits with a return code of 0 on some errors, so don’t rely on the return code. It exits with a non-zero code on most serious errors, though. | ||
[[Category:Features]] | |||
[[Category:AniDB Clients]] | |||
[[Category:Avdump]] | |||
[[Category:Development]] |