Downloads
ResLogger2 offers the current path list in multiple forms:
- PathList.gz, for automation of code that uses the entire database's path list.
- PathList.zip, a zip containing a text file for individuals that want to use or store the entire database's path list.
- CurrentPathList.gz, for automation of code that uses only files that exist in the current game version from the database's path list.
- CurrentPathList.zip, a zip containing a text file for individuals that want to use or store a list of only files that exist in the current game version from the database's path list.
- PathListWithHashes.gz, the same as PathList.gz but contains a csv with index ids and all three hashes included for every path.
- PathListWithHashes.zip, the same as PathList.zip but contains a csv with index ids and all three hashes included for every path.
- CurrentPathListWithHashes.gz, the same as CurrentPathList.gz but contains a csv with index ids and all three hashes included for every path.
- CurrentPathListWithHashes.zip, the same as CurrentPathList.zip but contains a csv with index ids and all three hashes included for every path.
Please note that every path list that contains hashes is about 4 times the size of the lists without. Please only use the path lists with hashes if you actually need them.
Each path list with hashes includes a CSV header of: indexid,folderhash,filehash,fullhash,path
All path list files are regenerated every 12 hours.
Example
Here is an example of how to use the PathList.gz file in a C# program:
public static void PrintPathList()
{
var url = @"https://rl2.perchbird.dev/download/export/PathList.gz";
using var httpClient = new HttpClient();
var stream = new GZipStream(httpClient.GetStreamAsync(url).Result, CompressionMode.Decompress);
var pathList = new StreamReader(stream).ReadToEnd();
var lines = pathList.Split("\n");
foreach (var line in lines)
{
Console.WriteLine(line);
}
}
Here is a Rust example, using reqwest and flate2:
fn print_path_list() {
let url = "https://rl2.perchbird.dev/download/export/PathList.gz";
let bytes = reqwest::blocking::get(url).unwrap().bytes().unwrap();
let mut decoder = GzDecoder::new(&bytes[..]);
let mut content = String::new();
decoder.read_to_string(&mut content).unwrap();
let v: Vec<&str> = content.split('\n').collect();
for str in v {
println!("{str}");
}
}