mirror of
https://github.com/kmein/niveum
synced 2026-03-16 10:11:08 +01:00
feat(moodle-dl): use module and package from nixpkgs fork
This commit is contained in:
@@ -1,59 +1,54 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
inherit (import <niveum/lib>) kieran;
|
||||
|
||||
moodle-dl = pkgs.callPackage <niveum/packages/moodle-dl> {};
|
||||
|
||||
moodle-dl-config = {
|
||||
telegram = {
|
||||
token = lib.strings.fileContents <system-secrets/telegram/moodle-dl.token>;
|
||||
chat_id = "18980945";
|
||||
send_error_msg = true;
|
||||
};
|
||||
token = lib.strings.fileContents <system-secrets/moodle.token>;
|
||||
moodle_domain = "moodle.hu-berlin.de";
|
||||
moodle_path = "/";
|
||||
download_course_ids = [
|
||||
99881 # Dialektologie
|
||||
100183 # Onomastik
|
||||
100353 # Sanskrit I
|
||||
100692 # Sanskrit Tutorium
|
||||
99832 # Germanisch
|
||||
99823 # Gotisch
|
||||
99813 # Altalbanisch
|
||||
98681 # Geistliche Lyrik von Luther bis Lehnert
|
||||
99667 # Antike Mythologie
|
||||
# 52365 # FSR KlassPhil
|
||||
];
|
||||
download_submissions = true;
|
||||
download_descriptions = true;
|
||||
download_links_in_descriptions = false;
|
||||
download_databases = false;
|
||||
download_forums = false;
|
||||
download_linked_files = false;
|
||||
download_also_with_cookie = false;
|
||||
nixpkgs-kmein = builtins.fetchGit {
|
||||
url = "https://github.com/kmein/nixpkgs";
|
||||
ref = "refs/heads/feature/moodle-dl-module";
|
||||
rev = "98ec084fe4dd9608769d592318d211dff3d32d86";
|
||||
};
|
||||
|
||||
moodle-dl-json = pkgs.writeText "moodle-dl.json" (builtins.toJSON moodle-dl-config);
|
||||
|
||||
moodle-dl-directory = "/var/lib/moodle";
|
||||
moodle-dl-package = (import nixpkgs-kmein {}).moodle-dl.overrideAttrs (old: old // {
|
||||
patches = old.patches ++ [ <niveum/packages/moodle-dl/telegram-format.patch> ];
|
||||
});
|
||||
in
|
||||
{
|
||||
users.extraUsers.moodle = {
|
||||
isNormalUser = false;
|
||||
home = moodle-dl-directory;
|
||||
createHome = true;
|
||||
openssh.authorizedKeys.keys = [
|
||||
# for sshfs mount
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDtIFmbspaBHaSkLEx43V0uaVd7l9NUFiwt2VOP++KzLjvRMLkyF2hg2HjmogTjUvTyoDs7RHwEH/cHZlJ5JQkM1jRqQpnYwGfkZEwYvmXAl6LY9+vQMP36gNPfXmKX3y3LelO7oD2uhUs0guTtg0tHUyN5/UY5u+VinyD6djxDkHaCUn3S7CS/odBcs/4flXT654wsvzgYicnSKH9R4W+7C0YsckZ/NoIkA4jnuwtWZYWrUkxd4/290buX6pAc5+zVVZqyy0sI4i8s6pO9RL5W7xvYt+w+U0u0dMxm5ckiRmLVKfIbMN4YtDxsZbZDajlQ1nDbOsEsrSXWz4H4cSNot7J820x1qh5SSxL4GSQlcT+6xCFk9kKyflxoS3oLoPLttx3rmOMkZKJWxF/IKLW47orxV6wkG5mHxdeR3cf6jX4j3nkwFVyC9R+WG4w2Z4vKONVE7uWGYU3y4OpR1e6MGHVShkNKqEvC/Kjcc/6v7I7AKRAuPZB0WEw36tA65/8= root@wilde"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFFPHt+FPQ6gq8Ev65YsBZrafdtpWGpCNnlVvy67S1BK root@manakish"
|
||||
];
|
||||
useDefaultShell = true;
|
||||
imports = [ "${nixpkgs-kmein}/nixos/modules/services/networking/moodle-dl.nix" ];
|
||||
|
||||
services.moodle-dl = {
|
||||
enable = true;
|
||||
startAt = "hourly";
|
||||
package = moodle-dl-package;
|
||||
config = {
|
||||
telegram = {
|
||||
token = lib.strings.fileContents <system-secrets/telegram/moodle-dl.token>;
|
||||
chat_id = "18980945";
|
||||
send_error_msg = true;
|
||||
};
|
||||
token = lib.strings.fileContents <system-secrets/moodle.token>;
|
||||
moodle_domain = "moodle.hu-berlin.de";
|
||||
moodle_path = "/";
|
||||
download_course_ids = [
|
||||
99881 # Dialektologie
|
||||
100183 # Onomastik
|
||||
100353 # Sanskrit I
|
||||
100692 # Sanskrit Tutorium
|
||||
99832 # Germanisch
|
||||
99823 # Gotisch
|
||||
99813 # Altalbanisch
|
||||
98681 # Geistliche Lyrik von Luther bis Lehnert
|
||||
99667 # Antike Mythologie
|
||||
# 52365 # FSR KlassPhil
|
||||
];
|
||||
download_submissions = true;
|
||||
download_descriptions = true;
|
||||
download_links_in_descriptions = false;
|
||||
download_databases = false;
|
||||
download_forums = false;
|
||||
download_linked_files = false;
|
||||
download_also_with_cookie = false;
|
||||
};
|
||||
};
|
||||
|
||||
system.activationScripts.moodle-dl-config = "ln -sfn ${toString moodle-dl-json} ${config.users.extraUsers.moodle.home}/config.json";
|
||||
|
||||
services.syncthing = {
|
||||
services.syncthing = let moodle-dl-directory = config.services.moodle-dl.directory; in {
|
||||
enable = true;
|
||||
user = "moodle"; # config.users.extraUsers.moodle.name;
|
||||
openDefaultPorts = true;
|
||||
@@ -71,16 +66,4 @@ in
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd.services.moodle-dl = {
|
||||
enable = true;
|
||||
startAt = "hourly";
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
User = config.users.extraUsers.moodle.name;
|
||||
WorkingDirectory = config.users.extraUsers.moodle.home;
|
||||
};
|
||||
wants = [ "network-online.target" ];
|
||||
script = "${moodle-dl}/bin/moodle-dl";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
{ stdenv, lib, python3Packages }:
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "moodle-dl";
|
||||
version = "2.1.1.1";
|
||||
|
||||
src = python3Packages.fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "0nv2gm4x6mfsa0wywm4xbsx6nf6hx4kb63s4lczaxb9m4ybjd45h";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./readchar-version.patch
|
||||
./telegram-format.patch
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
sentry-sdk
|
||||
colorama
|
||||
readchar
|
||||
youtube-dl
|
||||
certifi
|
||||
html2text
|
||||
requests
|
||||
];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "https://github.com/C0D3D3V/Moodle-Downloader-2";
|
||||
maintainers = [ maintainers.kmein ];
|
||||
description = "A Moodle downloader that downloads course content fast from Moodle";
|
||||
license = licenses.gpl3;
|
||||
platforms = platforms.all;
|
||||
};
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 180139d..5582359 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -32,7 +32,7 @@ setup(
|
||||
install_requires=[
|
||||
'sentry_sdk>=0.13.5',
|
||||
'colorama>=0.4.3',
|
||||
- 'readchar>=2.0.1',
|
||||
+ 'readchar>=2.0.0',
|
||||
'youtube_dl>=2020.9.20',
|
||||
'certifi>=2020.4.5.2',
|
||||
'html2text>=2020.1.16',
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/moodle_dl/notification_services/telegram/telegram_formater.py b/moodle_dl/notification_services/telegram/telegram_formater.py
|
||||
index 05180b6..33009b0 100644
|
||||
index 470ff32..9ff1fa4 100644
|
||||
--- a/moodle_dl/notification_services/telegram/telegram_formater.py
|
||||
+++ b/moodle_dl/notification_services/telegram/telegram_formater.py
|
||||
@@ -15,10 +15,10 @@ def create_full_moodle_diff_message(changed_courses: [Course]) -> [str]:
|
||||
@@ -37,24 +37,24 @@ def create_full_moodle_diff_messages(changed_courses: [Course]) -> [str]:
|
||||
diff_count += len(course.files)
|
||||
|
||||
result_list = []
|
||||
@@ -10,36 +10,27 @@ index 05180b6..33009b0 100644
|
||||
+ one_msg_content = "%s changes in Moodle!" % (diff_count)
|
||||
|
||||
for course in changed_courses:
|
||||
- new_line = '\r\n\r\n\r\n> <b>' + course.fullname + '</b>\r\n'
|
||||
- new_line = '\r\n\r\n\r\n> **' + course.fullname + '**\r\n'
|
||||
+ new_line = "\r\n\r\n<b>" + course.fullname + "</b>"
|
||||
if len(one_msg_content) + len(new_line) >= 4096:
|
||||
result_list.append(one_msg_content)
|
||||
one_msg_content = new_line
|
||||
@@ -27,16 +27,16 @@ def create_full_moodle_diff_message(changed_courses: [Course]) -> [str]:
|
||||
one_msg_content = append_with_limit(new_line, one_msg_content, result_list)
|
||||
|
||||
for file in course.files:
|
||||
if file.modified:
|
||||
- new_line = '\r\n<i>* Modified:</i> ' + file.saved_to
|
||||
- new_line = '\r\n__* Modified:__ ' + file.saved_to
|
||||
+ new_line = "\r\n✍️ " + file.saved_to
|
||||
elif file.moved:
|
||||
if file.new_file is not None:
|
||||
- new_line = '\r\n<i>* Moved:</i> ' + file.new_file.saved_to
|
||||
- new_line = '\r\n__* Moved:__ ' + file.new_file.saved_to
|
||||
+ new_line = "\r\n📂 " + file.new_file.saved_to
|
||||
else:
|
||||
- new_line = '\r\n<i>* Moved:</i> ' + file.saved_to
|
||||
- new_line = '\r\n__* Moved:__ ' + file.saved_to
|
||||
+ new_line = "\r\n📂 " + file.saved_to
|
||||
elif file.deleted:
|
||||
- new_line = '\r\n<i>- Deleted:</i> ' + file.saved_to
|
||||
- new_line = '\r\n__- Deleted:__ ' + file.saved_to
|
||||
+ new_line = "\r\n🗑️ " + file.saved_to
|
||||
else:
|
||||
- new_line = '\r\n<i>+ Added:</i> ' + file.saved_to
|
||||
- new_line = '\r\n__+ Added:__ ' + file.saved_to
|
||||
+ new_line = "\r\n🎉 " + file.saved_to
|
||||
|
||||
if len(one_msg_content) + len(new_line) >= 4096:
|
||||
result_list.append(one_msg_content)
|
||||
@@ -52,4 +52,4 @@ def create_full_error_message(details) -> (str, {str: str}):
|
||||
"""
|
||||
Creates an error message
|
||||
"""
|
||||
- return 'The following error occurred during execution:' + details
|
||||
+ return "The following error occurred during execution:" + details
|
||||
one_msg_content = append_with_limit(new_line, one_msg_content, result_list)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user