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, ... }:
|
{ config, pkgs, lib, ... }:
|
||||||
let
|
let
|
||||||
inherit (import <niveum/lib>) kieran;
|
nixpkgs-kmein = builtins.fetchGit {
|
||||||
|
url = "https://github.com/kmein/nixpkgs";
|
||||||
moodle-dl = pkgs.callPackage <niveum/packages/moodle-dl> {};
|
ref = "refs/heads/feature/moodle-dl-module";
|
||||||
|
rev = "98ec084fe4dd9608769d592318d211dff3d32d86";
|
||||||
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;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
moodle-dl-json = pkgs.writeText "moodle-dl.json" (builtins.toJSON moodle-dl-config);
|
moodle-dl-package = (import nixpkgs-kmein {}).moodle-dl.overrideAttrs (old: old // {
|
||||||
|
patches = old.patches ++ [ <niveum/packages/moodle-dl/telegram-format.patch> ];
|
||||||
moodle-dl-directory = "/var/lib/moodle";
|
});
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
users.extraUsers.moodle = {
|
imports = [ "${nixpkgs-kmein}/nixos/modules/services/networking/moodle-dl.nix" ];
|
||||||
isNormalUser = false;
|
|
||||||
home = moodle-dl-directory;
|
services.moodle-dl = {
|
||||||
createHome = true;
|
enable = true;
|
||||||
openssh.authorizedKeys.keys = [
|
startAt = "hourly";
|
||||||
# for sshfs mount
|
package = moodle-dl-package;
|
||||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDtIFmbspaBHaSkLEx43V0uaVd7l9NUFiwt2VOP++KzLjvRMLkyF2hg2HjmogTjUvTyoDs7RHwEH/cHZlJ5JQkM1jRqQpnYwGfkZEwYvmXAl6LY9+vQMP36gNPfXmKX3y3LelO7oD2uhUs0guTtg0tHUyN5/UY5u+VinyD6djxDkHaCUn3S7CS/odBcs/4flXT654wsvzgYicnSKH9R4W+7C0YsckZ/NoIkA4jnuwtWZYWrUkxd4/290buX6pAc5+zVVZqyy0sI4i8s6pO9RL5W7xvYt+w+U0u0dMxm5ckiRmLVKfIbMN4YtDxsZbZDajlQ1nDbOsEsrSXWz4H4cSNot7J820x1qh5SSxL4GSQlcT+6xCFk9kKyflxoS3oLoPLttx3rmOMkZKJWxF/IKLW47orxV6wkG5mHxdeR3cf6jX4j3nkwFVyC9R+WG4w2Z4vKONVE7uWGYU3y4OpR1e6MGHVShkNKqEvC/Kjcc/6v7I7AKRAuPZB0WEw36tA65/8= root@wilde"
|
config = {
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFFPHt+FPQ6gq8Ev65YsBZrafdtpWGpCNnlVvy67S1BK root@manakish"
|
telegram = {
|
||||||
];
|
token = lib.strings.fileContents <system-secrets/telegram/moodle-dl.token>;
|
||||||
useDefaultShell = true;
|
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 = let moodle-dl-directory = config.services.moodle-dl.directory; in {
|
||||||
|
|
||||||
services.syncthing = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
user = "moodle"; # config.users.extraUsers.moodle.name;
|
user = "moodle"; # config.users.extraUsers.moodle.name;
|
||||||
openDefaultPorts = true;
|
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
|
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
|
--- a/moodle_dl/notification_services/telegram/telegram_formater.py
|
||||||
+++ b/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)
|
diff_count += len(course.files)
|
||||||
|
|
||||||
result_list = []
|
result_list = []
|
||||||
@@ -10,36 +10,27 @@ index 05180b6..33009b0 100644
|
|||||||
+ one_msg_content = "%s changes in Moodle!" % (diff_count)
|
+ one_msg_content = "%s changes in Moodle!" % (diff_count)
|
||||||
|
|
||||||
for course in changed_courses:
|
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>"
|
+ new_line = "\r\n\r\n<b>" + course.fullname + "</b>"
|
||||||
if len(one_msg_content) + len(new_line) >= 4096:
|
one_msg_content = append_with_limit(new_line, one_msg_content, result_list)
|
||||||
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]:
|
|
||||||
|
|
||||||
for file in course.files:
|
for file in course.files:
|
||||||
if file.modified:
|
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
|
+ new_line = "\r\n✍️ " + file.saved_to
|
||||||
elif file.moved:
|
elif file.moved:
|
||||||
if file.new_file is not None:
|
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
|
+ new_line = "\r\n📂 " + file.new_file.saved_to
|
||||||
else:
|
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
|
+ new_line = "\r\n📂 " + file.saved_to
|
||||||
elif file.deleted:
|
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
|
+ new_line = "\r\n🗑️ " + file.saved_to
|
||||||
else:
|
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
|
+ new_line = "\r\n🎉 " + file.saved_to
|
||||||
|
|
||||||
if len(one_msg_content) + len(new_line) >= 4096:
|
one_msg_content = append_with_limit(new_line, one_msg_content, result_list)
|
||||||
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
|
|
||||||
|
|||||||
Reference in New Issue
Block a user