Your ROOT_URL in app.ini is https://git.cloudchain.link/ but you are visiting https://dash.bss.nz/open-source-mirrors/jellyfin/blame/commit/671d302a92f79ec9c65dbae9c46a342038bfee96/OpenSubtitlesHandler/MovieHasher.cs
You should set ROOT_URL correctly, otherwise the web may not work correctly.
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
namespace OpenSubtitlesHandler
|
|
|
|
|
{
|
|
|
|
|
public class MovieHasher
|
|
|
|
|
{
|
|
|
|
|
public static byte[] ComputeMovieHash(string filename)
|
|
|
|
|
{
|
|
|
|
|
byte[] result;
|
|
|
|
|
using (Stream input = File.OpenRead(filename))
|
|
|
|
|
{
|
|
|
|
|
result = ComputeMovieHash(input);
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static byte[] ComputeMovieHash(Stream input)
|
|
|
|
|
{
|
|
|
|
|
long lhash, streamsize;
|
|
|
|
|
streamsize = input.Length;
|
|
|
|
|
lhash = streamsize;
|
|
|
|
|
|
|
|
|
|
long i = 0;
|
|
|
|
|
byte[] buffer = new byte[sizeof(long)];
|
|
|
|
|
while (i < 65536 / sizeof(long) && (input.Read(buffer, 0, sizeof(long)) > 0))
|
|
|
|
|
{
|
|
|
|
|
i++;
|
|
|
|
|
lhash += BitConverter.ToInt64(buffer, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
input.Position = Math.Max(0, streamsize - 65536);
|
|
|
|
|
i = 0;
|
|
|
|
|
while (i < 65536 / sizeof(long) && (input.Read(buffer, 0, sizeof(long)) > 0))
|
|
|
|
|
{
|
|
|
|
|
i++;
|
|
|
|
|
lhash += BitConverter.ToInt64(buffer, 0);
|
|
|
|
|
}
|
|
|
|
|
input.Close();
|
|
|
|
|
byte[] result = BitConverter.GetBytes(lhash);
|
|
|
|
|
Array.Reverse(result);
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static string ToHexadecimal(byte[] bytes)
|
|
|
|
|
{
|
|
|
|
|
StringBuilder hexBuilder = new StringBuilder();
|
|
|
|
|
for (int i = 0; i < bytes.Length; i++)
|
|
|
|
|
{
|
|
|
|
|
hexBuilder.Append(bytes[i].ToString("x2"));
|
|
|
|
|
}
|
|
|
|
|
return hexBuilder.ToString();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|