Compare commits

..

10 Commits

Author SHA1 Message Date
eneller
1767fd4c5d chore: cleanup 2025-09-06 18:37:35 +02:00
eneller
542fd9f3ec pacman hook 2025-09-06 14:27:54 +02:00
eneller
c2ada6c306 add gs pdf password removal 2025-04-16 23:40:28 +02:00
eneller
f33ddf8582 add: basic.css 2025-03-19 19:04:46 +01:00
eneller
f52be6a3a5 adjust noten.py for master 2025-02-17 12:31:40 +01:00
eneller
e4506aafd0 add: annas-archive userscript 2024-08-24 23:55:33 +02:00
eneller
b145e60977 add windows stuff 2024-08-14 12:47:09 +02:00
eneller
cbbe50878c minor stuff 2024-08-14 01:02:41 +02:00
eneller
3be8adb748 add zotify config 2023-10-01 19:53:15 +02:00
eneller
334947e610 minor stuff 2023-09-19 18:02:19 +02:00
15 changed files with 96 additions and 286 deletions

14
annas-archive.js Normal file
View File

@@ -0,0 +1,14 @@
// ==UserScript==
// @name annas-archive auto-downloader
// @namespace Violentmonkey Scripts
// @match http*://annas-archive.tld/slow_download/*
// @grant none
// @version 1.0
// @author eneller
// ==/UserScript==
downloadButton = document.querySelector('a.font-bold');
if (downloadButton!= null){
downloadButton.click();
console.log('found: '+downloadButton.href);
}

170
asq/.gitignore vendored
View File

@@ -1,170 +0,0 @@
env/
*.log
credentials.py
# Created by https://www.toptal.com/developers/gitignore/api/python
# Edit at https://www.toptal.com/developers/gitignore?templates=python
### Python ###
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
.pybuilder/
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock
# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/#use-with-ide
.pdm.toml
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
# pytype static type analyzer
.pytype/
# Cython debug symbols
cython_debug/
# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
# End of https://www.toptal.com/developers/gitignore/api/python

View File

@@ -1,3 +0,0 @@
# Usage
This script currently comes with a firefox linux webdriver. To install dependencies, use `python3 -m venv env` to create a new virtual environment,
activate it by running `source env/bin/activate` and install the requirements by running `pip install -r requirements.txt`. To exit the venv, run `deactivate`.

View File

@@ -1,36 +0,0 @@
import sys
import time
from getpass import getpass
import credentials
PAGE_PATH= "https://campusonline.uni-ulm.de/CoronaNG/user/mycorona.html"
TIME_CSS_PATH = "html body div#page_margins div#page.hold_floats div#footer div#mblock div#mblock_content.clearfix div#mblock_innen.floatbox"
print("Logging in as "+credentials.username)
"""
while True:
driver.get()
if (check_exists_name('uid')):
username_field = driver.find_element(By.NAME, 'uid')
password_field = driver.find_element(By.NAME, 'password')
username_field.send_keys(username)
password_field.send_keys(password)
password_field.submit()
time.sleep(i)
driver.get('https://campusonline.uni-ulm.de/CoronaNG/user/mycorona.html')
button = driver.find_element(By.XPATH, button_xpath)
select = Select(driver.find_element(By.XPATH,select_xpath))
select.select_by_visible_text('Alle markieren')
button.submit()
time.sleep(i)
select = Select(driver.find_element(By.XPATH,select_xpath))
select.select_by_visible_text('An Markierten teilnehmen')
button = driver.find_element(By.XPATH, button_xpath)
button.submit()
time.sleep(i)
driver.quit()
"""

View File

@@ -1,50 +0,0 @@
import sys
import time
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.by import By
from getpass import getpass
def check_exists_name(name):
try:
driver.find_element(By.NAME, name)
except NoSuchElementException:
return False
return True
i=.2 # TODO replace dumb waiting with selenium waiting
username = input("Input Username: ")
password = getpass()
button_xpath = '/html/body/div/div/div[4]/div[2]/div[1]/div/div/div[1]/div/form[1]/div/div/table/tbody/tr[3]/td/input[1]'
select_xpath = '/html/body/div/div/div[4]/div[2]/div[1]/div/div/div[1]/div/form[1]/div/div/table/tbody/tr[3]/td/select'
driver = webdriver.Firefox(executable_path='./geckodriver') # TODO replace with service worker object
#driver.implicitly_wait(2) # seconds
while True:
driver.get('https://campusonline.uni-ulm.de/CoronaNG/user/mycorona.html')
if (check_exists_name('uid')):
username_field = driver.find_element(By.NAME, 'uid')
password_field = driver.find_element(By.NAME, 'password')
username_field.send_keys(username)
password_field.send_keys(password)
password_field.submit()
time.sleep(i)
driver.get('https://campusonline.uni-ulm.de/CoronaNG/user/mycorona.html')
button = driver.find_element(By.XPATH, button_xpath)
select = Select(driver.find_element(By.XPATH,select_xpath))
select.select_by_visible_text('Alle markieren')
button.submit()
time.sleep(i)
select = Select(driver.find_element(By.XPATH,select_xpath))
select.select_by_visible_text('An Markierten teilnehmen')
button = driver.find_element(By.XPATH, button_xpath)
button.submit()
time.sleep(i)
driver.quit()

Binary file not shown.

View File

@@ -1,18 +0,0 @@
async-generator==1.10
attrs==21.2.0
certifi==2021.10.8
cffi==1.15.0
cryptography==35.0.0
h11==0.12.0
idna==3.3
outcome==1.1.0
pycparser==2.20
pyOpenSSL==21.0.0
selenium==4.0.0
six==1.16.0
sniffio==1.2.0
sortedcontainers==2.4.0
trio==0.19.0
trio-websocket==0.9.2
urllib3==1.26.7
wsproto==1.0.0

14
basic.css Normal file
View File

@@ -0,0 +1,14 @@
/* this is part of the http://bettermotherfuckingwebsite.com/ */
body{
margin:40px auto;
max-width:650px;
line-height:1.6;
font-size:18px;
color:#444;
padding:0
10px}
h1,h2,h3{
line-height:1.2
}

5
logseq-folders.sh Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/bash
eza --only-dirs | while read -r line; do
mv $line* "$line/"
done

View File

@@ -1,13 +1,8 @@
#!/usr/bin/env python #!/usr/bin/env python
# coding: utf-8 # coding: utf-8
import pandas as pd import pandas as pd
import numpy as np
import seaborn as sns target_lp = 74
import matplotlib.pyplot as plt
target_lp = 90
data = pd.read_csv('./noten.csv') data = pd.read_csv('./noten.csv')
#data.head(5) #data.head(5)
@@ -18,7 +13,7 @@ data.sort_values(by='note', inplace=True)
acc_note = 0.0 acc_note = 0.0
acc_lp = 0 acc_lp = 0
# the use of iterrows and all iteration over dataframes is discouraged for performance reasons # the use of iterrows and all iteration over dataframes is discouraged for performance reasons
for index, row in data.iterrows(): for _ , row in data.iterrows():
if acc_lp + row['lp'] < target_lp: if acc_lp + row['lp'] < target_lp:
acc_lp = acc_lp + row['lp'] acc_lp = acc_lp + row['lp']
acc_note = acc_note + row['lp'] * row['note'] acc_note = acc_note + row['lp'] * row['note']
@@ -26,6 +21,6 @@ for index, row in data.iterrows():
weight = target_lp - acc_lp weight = target_lp - acc_lp
acc_note = acc_note + weight * row['note'] acc_note = acc_note + weight * row['note']
break break
acc_note = acc_note / target_lp acc_note = acc_note / acc_lp
print(acc_note) print(acc_note)

1
pdfremovepass.sh Normal file
View File

@@ -0,0 +1 @@
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=unencrypted.pdf my-protected-pdf-file.pdf

8
pirate_cutlass.bat Normal file
View File

@@ -0,0 +1,8 @@
@ setlocal enableextensions
@ cd /d "%~dp0"
for /R %%f in (*.exe) do (
netsh advfirewall firewall add rule name="Blocked: %%f" dir=out program="%%f" action=block
netsh advfirewall firewall add rule name="Blocked: %%f" dir=in program="%%f" action=block
)
pause

10
uv-upgrade.hook Normal file
View File

@@ -0,0 +1,10 @@
[Trigger]
Operation = Upgrade
Type = Package
Target = *
[Action]
Description = Upgrade python programs installed as 'uv tool'
When = PostTransaction
Depends = python-uv
Exec = /usr/bin/uv tool upgrade --all

7
video.ytdl Normal file
View File

@@ -0,0 +1,7 @@
# Point to this config using --config-location
# download playlist if ambiguous
--yes-playlist
-f "bestvideo[height=360]+bestaudio/best[height=360]"
--merge-output-format mp4
# set output names
-o ~/Downloads/ytdl/%(playlist_title|misc)s/%(title)s.%(ext)s

33
zotify.json Normal file
View File

@@ -0,0 +1,33 @@
{
"SAVE_CREDENTIALS": "True",
"CREDENTIALS_LOCATION": "credentials.json",
"OUTPUT": "downloaded/{artist}/{album}/{song_name} - {artist}.{ext}",
"SONG_ARCHIVE": "successful_archive.txt",
"ROOT_PATH": ".",
"ROOT_PODCAST_PATH": "",
"SPLIT_ALBUM_DISCS": "False",
"DOWNLOAD_LYRICS": "False",
"MD_SAVE_GENRES": "False",
"MD_ALLGENRES": "True",
"MD_GENREDELIMITER": ",",
"DOWNLOAD_FORMAT": "mp3",
"DOWNLOAD_QUALITY": "high",
"TRANSCODE_BITRATE": "auto",
"SKIP_EXISTING": "True",
"SKIP_PREVIOUSLY_DOWNLOADED": "True",
"RETRY_ATTEMPTS": "1",
"BULK_WAIT_TIME": "1",
"OVERRIDE_AUTO_WAIT": "False",
"CHUNK_SIZE": "20000",
"DOWNLOAD_REAL_TIME": "False",
"LANGUAGE": "en",
"PRINT_SPLASH": "False",
"PRINT_SKIPS": "True",
"PRINT_DOWNLOAD_PROGRESS": "False",
"PRINT_ERRORS": "True",
"PRINT_DOWNLOADS": "False",
"PRINT_API_ERRORS": "True",
"PRINT_PROGRESS_INFO": "True",
"PRINT_WARNINGS": "True",
"TEMP_DOWNLOAD_DIR": ""
}