view src/track/media.cpp @ 75:d3e9310598b1

*: refactor some stuff text: "TextParagraph"s are now called sections, because that's the actual word for it :P text: new classes: Line and OneLineSection, solves many problems with paragraphs that are only one line long (ex. going out of bounds) http: reworked http stuff to allow threaded get requests, also moved it to its own file to (hopefully) remove clutter eventually I'll make a threaded post request method and use that in the "basic" function
author Paper <mrpapersonic@gmail.com>
date Wed, 04 Oct 2023 01:42:30 -0400
parents fe719c109dbc
children 3364fadc8a36
line wrap: on
line source

#include "track/media.h"
#include "core/filesystem.h"
#include "core/strings.h"
#include "animia.h"
#include "anitomy/anitomy.h"
#include <string>
#include <vector>

namespace Track {
namespace Media {

Filesystem::Path GetCurrentPlaying() {
	/* getting all open files */
	std::vector<int> pids = Animia::get_all_pids();
	for (int i : pids) {
		if (Animia::get_process_name(i) == "mpc-hc64.exe") {
			std::vector<std::string> files = Animia::filter_system_files(Animia::get_open_files(i));
			for (std::string s : files) {
				Filesystem::Path p(s);
				if (p.Extension() == "mkv")
					return p;
			}
		}
	}
	return Filesystem::Path();
}

std::string GetFileTitle(Filesystem::Path path) {
	anitomy::Anitomy anitomy;
	anitomy.Parse(Strings::ToWstring(path.Basename()));

	const auto& elements = anitomy.elements();

	return Strings::ToUtf8String(elements.get(anitomy::kElementAnimeTitle));
}

} // namespace Media
} // namespace Track