init
This commit is contained in:
commit
d0af37ab9c
38
clean-cloud.sh
Executable file
38
clean-cloud.sh
Executable file
@ -0,0 +1,38 @@
|
|||||||
|
#! /usr/bin/env nix-shell
|
||||||
|
#! nix-shell -i bash -p bash rsync
|
||||||
|
|
||||||
|
# remote_server=miniserver
|
||||||
|
# local_directory=/mnt/pool/cloud
|
||||||
|
# remote_directories=(/mnt/pool /home/jawz/Multimedia /home/jawz/Pictures /home/jawz/gallery-dl)
|
||||||
|
shopt -s extglob
|
||||||
|
|
||||||
|
# for remote_dir in "${remote_directories[@]}"; do
|
||||||
|
# dir_name=${remote_dir%%+(/)}
|
||||||
|
# dir_name=${dir_name##*/}
|
||||||
|
# rsync -avz -r --info=progress2 --info=name0 \
|
||||||
|
# --remove-source-files \
|
||||||
|
# -e ssh "$remote_server":"$remote_dir"/ "$local_directory"/"$dir_name"/
|
||||||
|
# done
|
||||||
|
|
||||||
|
sync() {
|
||||||
|
echo "Syncing $1"
|
||||||
|
rsync -avzr --info=progress2 --info=name0 \
|
||||||
|
--remove-source-files \
|
||||||
|
-e ssh /mnt/miniserver/"$1"/ /mnt/server/"$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
sync pool/scrapping/JawZ
|
||||||
|
sync pool/glue
|
||||||
|
|
||||||
|
dirs_whitelist=(Comics Espaniol Manga Webcomics Webtoons)
|
||||||
|
for dir in "${dirs_whitelist[@]}"; do
|
||||||
|
sync pool/multimedia/media/Library/"$dir"
|
||||||
|
done
|
||||||
|
sync "jawz/Pictures/To Organize"
|
||||||
|
|
||||||
|
echo "syncing download files"
|
||||||
|
jawz_config=/home/jawz/.config/jawz/
|
||||||
|
rsync -avz -r --info=progress2 --info=name0 --delete \
|
||||||
|
-e ssh miniserver:"$jawz_config" "$jawz_config"
|
||||||
|
|
||||||
|
echo "Donion rings nwn!"
|
||||||
59
clean-watch.sh
Executable file
59
clean-watch.sh
Executable file
@ -0,0 +1,59 @@
|
|||||||
|
#! /usr/bin/env nix-shell
|
||||||
|
#! nix-shell -i bash -p bash gnome.zenity firefox
|
||||||
|
|
||||||
|
# Path to the list file
|
||||||
|
LIST_PATH="/mnt/miniserver/jawz/.config/jawz/lists/jawz/watch.txt"
|
||||||
|
KEPT_LINKS_PATH="/mnt/miniserver/jawz/.config/jawz/lists/jawz/kept_links.txt"
|
||||||
|
|
||||||
|
# Check if the list file exists
|
||||||
|
if [[ ! -f $LIST_PATH ]]; then
|
||||||
|
echo "List file not found at $LIST_PATH!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
touch $KEPT_LINKS_PATH
|
||||||
|
|
||||||
|
# Function to open a link in Firefox
|
||||||
|
open_link() {
|
||||||
|
local link=$1
|
||||||
|
firefox --new-tab "$link" &
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to show Zenity prompt
|
||||||
|
prompt_user() {
|
||||||
|
local link=$1
|
||||||
|
zenity --question --text="Do you want to keep this link?\n$link" --title="Keep Link?"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Main loop
|
||||||
|
while [[ -s $LIST_PATH ]]; do
|
||||||
|
# Select a random link from the list file
|
||||||
|
link=$(grep -v -e "wikifeet.com" -e "kemono.su" -e "kemono.party" "$LIST_PATH" |
|
||||||
|
grep -vxFf "$KEPT_LINKS_PATH" | shuf -n 1)
|
||||||
|
|
||||||
|
# If no link is found, exit the loop
|
||||||
|
if [[ -z $link ]]; then
|
||||||
|
echo "No more links to process or only excluded/kept links remain."
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Open the link in Firefox
|
||||||
|
open_link "$link"
|
||||||
|
|
||||||
|
# Wait for a short time to allow Firefox to open the link
|
||||||
|
sleep 3
|
||||||
|
|
||||||
|
# Show Zenity prompt to the user
|
||||||
|
if prompt_user "$link"; then
|
||||||
|
# If the user wants to keep the link, add it to the kept links file
|
||||||
|
echo "$link" >>"$KEPT_LINKS_PATH"
|
||||||
|
echo "Link kept: $link"
|
||||||
|
else
|
||||||
|
# If the user does not want to keep the link, remove it from the list file
|
||||||
|
grep -vF "$link" "$LIST_PATH" >temp.txt && mv temp.txt "$LIST_PATH"
|
||||||
|
echo "Link removed: $link"
|
||||||
|
fi
|
||||||
|
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "No more links in $LIST_PATH"
|
||||||
Binary file not shown.
Binary file not shown.
BIN
deprecated-rewrite/Windows/Windows/Other/Bat to Exe/settings
Normal file
BIN
deprecated-rewrite/Windows/Windows/Other/Bat to Exe/settings
Normal file
Binary file not shown.
Binary file not shown.
@ -0,0 +1,42 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<FreeFileSync XmlType="GUI" XmlFormat="14">
|
||||||
|
<Compare>
|
||||||
|
<Variant>TimeAndSize</Variant>
|
||||||
|
<Symlinks>Exclude</Symlinks>
|
||||||
|
<IgnoreTimeShift/>
|
||||||
|
</Compare>
|
||||||
|
<Synchronize>
|
||||||
|
<Variant>TwoWay</Variant>
|
||||||
|
<DetectMovedFiles>false</DetectMovedFiles>
|
||||||
|
<DeletionPolicy>RecycleBin</DeletionPolicy>
|
||||||
|
<VersioningFolder Style="Replace"/>
|
||||||
|
</Synchronize>
|
||||||
|
<Filter>
|
||||||
|
<Include>
|
||||||
|
<Item>*</Item>
|
||||||
|
</Include>
|
||||||
|
<Exclude>
|
||||||
|
<Item>\System Volume Information\</Item>
|
||||||
|
<Item>\$Recycle.Bin\</Item>
|
||||||
|
<Item>\RECYCLER\</Item>
|
||||||
|
<Item>\RECYCLED\</Item>
|
||||||
|
<Item>*\desktop.ini</Item>
|
||||||
|
<Item>*\thumbs.db</Item>
|
||||||
|
</Exclude>
|
||||||
|
<TimeSpan Type="None">0</TimeSpan>
|
||||||
|
<SizeMin Unit="None">0</SizeMin>
|
||||||
|
<SizeMax Unit="None">0</SizeMax>
|
||||||
|
</Filter>
|
||||||
|
<FolderPairs>
|
||||||
|
<Pair>
|
||||||
|
<Left>D:\Comic</Left>
|
||||||
|
<Right>\\JAWZ-WORKSTATIO\OneDrive\Comic</Right>
|
||||||
|
</Pair>
|
||||||
|
</FolderPairs>
|
||||||
|
<Errors Ignore="false" Retry="0" Delay="5"/>
|
||||||
|
<LogFolder/>
|
||||||
|
<PostSyncCommand Condition="Completion"/>
|
||||||
|
<Gui>
|
||||||
|
<MiddleGridView>Action</MiddleGridView>
|
||||||
|
</Gui>
|
||||||
|
</FreeFileSync>
|
||||||
30
deprecated-rewrite/Windows/Windows/Other/Thumbnail me.ini
Normal file
30
deprecated-rewrite/Windows/Windows/Other/Thumbnail me.ini
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
[General]
|
||||||
|
Program=thumbnailme
|
||||||
|
Date_file=Wed Sep 12 15:57:39 2018
|
||||||
|
|
||||||
|
[Settings]
|
||||||
|
columns=4
|
||||||
|
rows=4
|
||||||
|
width=1024
|
||||||
|
gap=1
|
||||||
|
formatFile=jpeg
|
||||||
|
quality=80
|
||||||
|
blank_skip=0.80
|
||||||
|
edge_detect=0
|
||||||
|
|
||||||
|
[Styles]
|
||||||
|
additional_title=
|
||||||
|
background_color=#000000
|
||||||
|
infotext_checked=true
|
||||||
|
timestamp_checked=true
|
||||||
|
infotext_font=Caviar Dreams
|
||||||
|
timestamp_font=Caviar Dreams
|
||||||
|
infotext_location=4
|
||||||
|
timestamp_location=2
|
||||||
|
infotext_size=12
|
||||||
|
timestamp_size=10
|
||||||
|
infotext_color=#ffffff
|
||||||
|
timestamp_color=#ffffff
|
||||||
|
shadow_color=#000000
|
||||||
|
isSameSourceChecked=true
|
||||||
|
path_output_batchmod=
|
||||||
@ -0,0 +1,45 @@
|
|||||||
|
[General]
|
||||||
|
ShowGridLines=0
|
||||||
|
SaveFilterIndex=1
|
||||||
|
ShowInfoTip=1
|
||||||
|
ShowTimeInGMT=0
|
||||||
|
MarkOddEvenRows=0
|
||||||
|
AddWildCard.SubfolderDepth=0
|
||||||
|
AddWildCard.Wildcard=
|
||||||
|
AddFiles=1
|
||||||
|
AddFolders=1
|
||||||
|
ExecuteOptions.ShowWindow=1
|
||||||
|
ExecuteOptions.ExecuteCommand=
|
||||||
|
ChangeTime.Created.UseTime=1
|
||||||
|
ChangeTime.Created.UseDate=1
|
||||||
|
ChangeTime.Created.Add=0
|
||||||
|
ChangeTime.Created.AddValue=5
|
||||||
|
ChangeTime.Created.AddUnit=3
|
||||||
|
ChangeTime.Created.DateTime=04-03-2020 21:00:34
|
||||||
|
ChangeTime.Modified.UseTime=0
|
||||||
|
ChangeTime.Modified.UseDate=0
|
||||||
|
ChangeTime.Modified.Add=0
|
||||||
|
ChangeTime.Modified.AddValue=5
|
||||||
|
ChangeTime.Modified.AddUnit=3
|
||||||
|
ChangeTime.Modified.DateTime=09-09-2018 15:30:34
|
||||||
|
ChangeTime.Accessed.UseTime=0
|
||||||
|
ChangeTime.Accessed.UseDate=0
|
||||||
|
ChangeTime.Accessed.Add=0
|
||||||
|
ChangeTime.Accessed.AddValue=5
|
||||||
|
ChangeTime.Accessed.AddUnit=3
|
||||||
|
ChangeTime.Accessed.DateTime=09-09-2018 15:30:34
|
||||||
|
ChangeTime.TimeInGMT=0
|
||||||
|
ChangeTime.CopyTimeFrom=1
|
||||||
|
ChangeTime.CopyTimeToCreated=1
|
||||||
|
ChangeTime.CopyTimeToModified=0
|
||||||
|
ChangeTime.CopyTimeToAccessed=1
|
||||||
|
ChangeTime.UseCopyTime=0
|
||||||
|
ChangeAttr.Archive=1
|
||||||
|
ChangeAttr.Hidden=3
|
||||||
|
ChangeAttr.ReadOnly=1
|
||||||
|
ChangeAttr.System=1
|
||||||
|
ChangeAttr.Temporary=1
|
||||||
|
ChangeTime.TimeSequenceMode=0
|
||||||
|
WinPos=2C 00 00 00 00 00 00 00 01 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF B7 01 00 00 C0 01 00 00 7C 05 00 00 A0 03 00 00
|
||||||
|
Columns=96 00 00 00 FA 00 01 00 6E 00 02 00 6E 00 03 00 6E 00 04 00 64 00 05 00 5A 00 06 00 5A 00 07 00 C8 00 08 00 78 00 09 00
|
||||||
|
Sort=2
|
||||||
Binary file not shown.
Binary file not shown.
@ -0,0 +1,319 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
BulkFileChanger v1.51
|
||||||
|
Copyright (c) 2010 - 2017 Nir Sofer
|
||||||
|
Web site: http://www.nirsoft.net
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Description
|
||||||
|
===========
|
||||||
|
|
||||||
|
BulkFileChanger is a small utility that allows you to create files list
|
||||||
|
from multiple folders, and then make some action on them - Modify their
|
||||||
|
created/modified/accessed time, change their file attribute (Read Only,
|
||||||
|
Hidden, System), run an executable with these files as parameter, and
|
||||||
|
copy/cut paste into Explorer.
|
||||||
|
|
||||||
|
BulkFileChanger is a replacement for the old FileDate Changer utility.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
System Requirements & Limitations
|
||||||
|
=================================
|
||||||
|
|
||||||
|
|
||||||
|
* This utility works on any version of Windows, starting from Windows
|
||||||
|
2000 and up to Windows 10. Both 32-bit and 64-bit systems are supported.
|
||||||
|
* If you set a date prior to 01/01/1980, Windows Explorer will not
|
||||||
|
display this date, due to a limitation originally created for old FAT
|
||||||
|
systems. You can still watch an old file date using other file managers
|
||||||
|
like 7-zip, using BulkFileChanger utility, or by right-clicking on the
|
||||||
|
file and choosing 'Properties'.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Versions History
|
||||||
|
================
|
||||||
|
|
||||||
|
|
||||||
|
* Version 1.51:
|
||||||
|
o Added 'Fill Date/Time From File' button to the 'Change file time
|
||||||
|
/ attributes' window. When you click it, you can choose a file and
|
||||||
|
then the current date/time of this file will be copied to the
|
||||||
|
date/time fields of the 'Change file time / attributes' window.
|
||||||
|
|
||||||
|
* Version 1.50:
|
||||||
|
o Added /ChangeTimeAttr command-line option which automactially
|
||||||
|
scans the specified folder and its subfolders and modifies the
|
||||||
|
date/time/attributes according to the .cfg file, without displaying
|
||||||
|
any user interface.
|
||||||
|
o Added /LogFile and /LogFileAppend command-line options which
|
||||||
|
write all date/time changes and errors into a log file (For using
|
||||||
|
with /ChangeTimeAttr )
|
||||||
|
o Added /cfg command-line option for loading another configuration
|
||||||
|
file instead of the default one.
|
||||||
|
o Updated the 'Attributes' column to display the following
|
||||||
|
Attributes: 'I' for 'Not Content Indexed', 'E' for encrypted file,
|
||||||
|
'X' for 'No Scrub File', and 'V' for 'Integrity Attribute'.
|
||||||
|
|
||||||
|
* Version 1.40:
|
||||||
|
o 'Change Time / Attributes' window: The date/times values are now
|
||||||
|
stored in the .cfg file.
|
||||||
|
o 'Change Time / Attributes' window: Added 'Save Settings' button,
|
||||||
|
for saving the current settings without changing any file.
|
||||||
|
o You can now drag a file from Windows Explorer into the 'Change
|
||||||
|
Time / Attributes' window and the created/modified/accessed times of
|
||||||
|
this file will be copied to the appropriate date/time settings.
|
||||||
|
|
||||||
|
* Version 1.35:
|
||||||
|
o Added 'Run As Administrator' option (Ctrl+F11), which allows you
|
||||||
|
to easily run BulkFileChanger as administrator on Windows
|
||||||
|
Vista/7/8/2008.
|
||||||
|
o BulkFileChanger now can read the EXIF data of CR2 raw files.
|
||||||
|
|
||||||
|
* Version 1.33:
|
||||||
|
o Fixed bug from v1.32: BulkFileChanger stopped working on Windows
|
||||||
|
2000.
|
||||||
|
|
||||||
|
* Version 1.32:
|
||||||
|
o Fixed BulkFileChanger to display and handle daylight saving time
|
||||||
|
properly, like Explorer on Windows 7.
|
||||||
|
|
||||||
|
* Version 1.31:
|
||||||
|
o BulkFileChanger now displays file dates prior to 01/01/1980. In
|
||||||
|
previous versions, BulkFileChanger didn't display these dates in
|
||||||
|
order to be compatible with Windows Explorer...
|
||||||
|
|
||||||
|
* Version 1.30:
|
||||||
|
o BulkFileChanger now displays an error message if it fails to
|
||||||
|
change the date/time/attributes of one or more files.
|
||||||
|
o Added 'Modified-Created Time Difference' column, which displays
|
||||||
|
the time difference (in hours:minutes:seconds.milliseconds format)
|
||||||
|
between the created time and the modified time of the file. This time
|
||||||
|
difference might be interesting in some circumstances. For example:
|
||||||
|
If you download a new file from the Internet, the file is created at
|
||||||
|
the moment you start to download it, and its modified time is set to
|
||||||
|
the time that the last byte was written to the file. This means that
|
||||||
|
the created/modified time difference represents the duration of
|
||||||
|
downloading process.
|
||||||
|
|
||||||
|
* Version 1.25:
|
||||||
|
o You can now specify environment variables (For example:
|
||||||
|
%appdata%) in the folder path to scan ('Add By Wildcard' option).
|
||||||
|
|
||||||
|
* Version 1.24:
|
||||||
|
o Fixed bug: If you added files, and then removed them from the
|
||||||
|
list, BulkFileChanger failed to add them again.
|
||||||
|
|
||||||
|
* Version 1.23:
|
||||||
|
o Fixed issue: BulkFileChanger failed to copy EXIF properties from
|
||||||
|
.jpg image to the created/modified/accessed time of the file, On
|
||||||
|
Windows 7 and Windows 8. The problem is actually in the GDI+ library
|
||||||
|
of Windows which from unknown reason fails to read these EXIF
|
||||||
|
properties. So BulkFileChanger now reads the EXIF data directly
|
||||||
|
instead of using the GDI+ library of Windows.
|
||||||
|
|
||||||
|
* Version 1.22:
|
||||||
|
o Fixed issue: The properties dialog-box and other windows opened
|
||||||
|
in the wrong monitor, on multi-monitors system.
|
||||||
|
o Added 'Auto Size Columns+Headers' option, which allows you to
|
||||||
|
automatically resize the columns according to the row values and
|
||||||
|
column headers.
|
||||||
|
o Added 64-bit build.
|
||||||
|
|
||||||
|
* Version 1.21:
|
||||||
|
o Fixed bug: BulkFileChanger failed to display the size and
|
||||||
|
date/time information for a filename that begins with dot character.
|
||||||
|
|
||||||
|
* Version 1.20:
|
||||||
|
o Added 3 new options into 'Copy Time From': EXIF - Generated Time,
|
||||||
|
EXIF - Stored Time, and EXIF - Modified Time. You can use these
|
||||||
|
options to copy the date/time stored inside EXIF data of digital
|
||||||
|
camera picture into the created/modified time of the file.
|
||||||
|
|
||||||
|
* Version 1.15:
|
||||||
|
o Added 'Date/time sequence mode' option. When it's turned on,
|
||||||
|
BulkFileChanger will set a different date/time value for every file,
|
||||||
|
and the 'Add' field will be used to add additional time interval for
|
||||||
|
every file.
|
||||||
|
For example, if you set the modified date/time to '07/07/2011
|
||||||
|
10:12:15' and the add value is set to 1 second, the modified time of
|
||||||
|
the first file will be set the '07/07/2011 10:12:15', the second file
|
||||||
|
will be set to '07/07/2011 10:12:16', the third file will be set to
|
||||||
|
'07/07/2011 10:12:17', and so on...
|
||||||
|
The order of the files is determined according to the column you
|
||||||
|
click. So, if for example, you click the filename column and then use
|
||||||
|
the 'Date/time sequence mode', the date/time values will be set
|
||||||
|
according to the filename alphabetical order.
|
||||||
|
|
||||||
|
* Version 1.10:
|
||||||
|
o Added the option to copy from one date/time value to another.
|
||||||
|
(For example, you can copy the modified time into the created time or
|
||||||
|
the created time into the modified time and accessed time)
|
||||||
|
|
||||||
|
* Version 1.05:
|
||||||
|
o BulkFileChanger now also allows you to change the date/time of a
|
||||||
|
folder. You can add a folder by dragging it from Explorer or by
|
||||||
|
adding it with 'Add By Wildcard' feature and 'Add Folders' option
|
||||||
|
turned on.
|
||||||
|
o Added 'File Extension' column.
|
||||||
|
o Added 'Mark Odd/Even Rows' option, under the View menu. When it's
|
||||||
|
turned on, the odd and even rows are displayed in different color, to
|
||||||
|
make it easier to read a single line.
|
||||||
|
|
||||||
|
* Version 1.02:
|
||||||
|
o Added support for temporary file attribute.
|
||||||
|
|
||||||
|
* Version 1.01:
|
||||||
|
o Fixed bug: When the find dialog-box was in focus, pressing the
|
||||||
|
delete key removed the file from the main window.
|
||||||
|
|
||||||
|
* Version 1.00: First release.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Using BulkFileChanger
|
||||||
|
=====================
|
||||||
|
|
||||||
|
BulkFileChanger doesn't require any installation process or additional
|
||||||
|
dll files. In order to start using it, simply run the executable file -
|
||||||
|
BulkFileChanger.exe
|
||||||
|
|
||||||
|
After running BulkFileChanger, you can add files into the list by using
|
||||||
|
one of the following methods:
|
||||||
|
* Copy and Paste: Simply copy files from Explorer window (Ctrl+C) and
|
||||||
|
then paste them into BulkFileChanger (Ctrl+V). You can also copy files
|
||||||
|
from other utilities of NirSoft, like SearchMyFiles and HashMyFiles.
|
||||||
|
* Drag From Explorer: You can add files by dragging them from Explorer
|
||||||
|
window into the main window of BulkFileChanger.
|
||||||
|
* 'Add Files' option (F2):Add files from 'open file' dialog-box.
|
||||||
|
* 'Add By Wildcard' option (F3):Add multiple files by specifying
|
||||||
|
wildcard, path, and subfolder depth to scan. (For Example:
|
||||||
|
c:\temp\*.txt)
|
||||||
|
You can also remove files from the list by using 'Remove Selected Files'
|
||||||
|
option (Del key) or clear the entire files list by using 'Clear Files
|
||||||
|
List' (Ctrl+L)
|
||||||
|
|
||||||
|
After you added the desired files, you can select some of them or all of
|
||||||
|
them (Ctrl+A) and then use one of the following options:
|
||||||
|
* Change Time / Attributes (F6): Allows you to modify the
|
||||||
|
modified/created/accessed time of the selected files. You set them to
|
||||||
|
specific time/date values or you can add/subtract
|
||||||
|
days/hours/minutes/seconds from the existing file time. You can also
|
||||||
|
modify the attributes of the files, like Read-Only, Hidden, and so on.
|
||||||
|
* Execute Command On Selected Files (F7): Allows you to run any
|
||||||
|
executable with the selected files as command-line parameter. For
|
||||||
|
example: if you specify 'c:\temp\MyProgram.exe "%1"' in the execute
|
||||||
|
command string, BulkFileChanger will run MyProgram.exe for every file
|
||||||
|
in the list, and the "%1" will be replaced with the full path filename.
|
||||||
|
* Explorer Copy/Cut: You can use the copy or cut option to copy/move
|
||||||
|
the selected files into another folder window of Explorer.
|
||||||
|
* Export Selected Items: You can export the files list into
|
||||||
|
html/text/html/csv file.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Command-Line Options
|
||||||
|
====================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/cfg <Filename>
|
||||||
|
Start BulkFileChanger with the specified configuration file. For example:
|
||||||
|
BulkFileChanger.exe /cfg "c:\config\bfc.cfg"
|
||||||
|
|
||||||
|
/ChangeTimeAttr <Folder> <Wildcard> <Subfolders Depth> <File/Folder Mode>
|
||||||
|
This command-line option allows you to scan a folder and its subfolders,
|
||||||
|
and change the date/time/attributes of all files without displaying any
|
||||||
|
user interface. The change is made according to the last settings stored
|
||||||
|
in the .cfg file. You can choose to load another .cfg file (Instead of
|
||||||
|
default) by using the /cfg command-line option.
|
||||||
|
|
||||||
|
|
||||||
|
<Folder> - Specifies the base folder to scan.
|
||||||
|
<Wildcard> - Specifies the wildcard to determine which files to change.
|
||||||
|
For example, if you want to only modify the date/time of .exe file,
|
||||||
|
specify "*.exe". If you want to change all files - simply specify "*".
|
||||||
|
<Subfolders Depth> - Specifies the depth of subfolders to scan. If you
|
||||||
|
specify 0, BulkFileChanger will not scan the subfolders.
|
||||||
|
<File/Folder Mode> - Specifies whether to change the date/time/attributes
|
||||||
|
of files, folders or both:
|
||||||
|
0 = Both Files and folders
|
||||||
|
1 = Files only
|
||||||
|
2 = Folders only
|
||||||
|
|
||||||
|
Here's a few examples:
|
||||||
|
BulkFileChanger.exe /ChangeTimeAttr "C:\Temp\MyFiles" "*" 5 0
|
||||||
|
BulkFileChanger.exe /ChangeTimeAttr "C:\Temp\MyFiles" "a*.csv" 0 1
|
||||||
|
BulkFileChanger.exe /cfg "c:\temp\bfc12.cfg" /ChangeTimeAttr "C:\Temp"
|
||||||
|
"*" 10 0
|
||||||
|
BulkFileChanger.exe /LogFile "c:\temp\log1.txt" /ChangeTimeAttr
|
||||||
|
"C:\MyFiles" "*" 2 0
|
||||||
|
|
||||||
|
Warning !!
|
||||||
|
This command-line option is very powerful, so you should use it
|
||||||
|
carefully. It's recommended to test it with a single small folder to
|
||||||
|
check that it works as expcted before running it on a full drive...
|
||||||
|
|
||||||
|
/LogFile <Filename>
|
||||||
|
Specifies a log file to write all actions and errors while running the
|
||||||
|
/ChangeTimeAttr command.
|
||||||
|
|
||||||
|
/LogFileAppend <Filename>
|
||||||
|
Similar to /LogFile, but if the file already exists, the new log lines
|
||||||
|
are added to the existing file.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Translating BulkFileChanger to other languages
|
||||||
|
==============================================
|
||||||
|
|
||||||
|
In order to translate BulkFileChanger to other language, follow the
|
||||||
|
instructions below:
|
||||||
|
1. Run BulkFileChanger with /savelangfile parameter:
|
||||||
|
BulkFileChanger.exe /savelangfile
|
||||||
|
A file named BulkFileChanger_lng.ini will be created in the folder of
|
||||||
|
BulkFileChanger utility.
|
||||||
|
2. Open the created language file in Notepad or in any other text
|
||||||
|
editor.
|
||||||
|
3. Translate all string entries to the desired language. Optionally,
|
||||||
|
you can also add your name and/or a link to your Web site.
|
||||||
|
(TranslatorName and TranslatorURL values) If you add this information,
|
||||||
|
it'll be used in the 'About' window.
|
||||||
|
4. After you finish the translation, Run BulkFileChanger, and all
|
||||||
|
translated strings will be loaded from the language file.
|
||||||
|
If you want to run BulkFileChanger without the translation, simply
|
||||||
|
rename the language file, or move it to another folder.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
License
|
||||||
|
=======
|
||||||
|
|
||||||
|
This utility is released as freeware. You are allowed to freely
|
||||||
|
distribute this utility via floppy disk, CD-ROM, Internet, or in any
|
||||||
|
other way, as long as you don't charge anything for this. If you
|
||||||
|
distribute this utility, you must include all files in the distribution
|
||||||
|
package, without any modification !
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Disclaimer
|
||||||
|
==========
|
||||||
|
|
||||||
|
The software is provided "AS IS" without any warranty, either expressed
|
||||||
|
or implied, including, but not limited to, the implied warranties of
|
||||||
|
merchantability and fitness for a particular purpose. The author will not
|
||||||
|
be liable for any special, incidental, consequential or indirect damages
|
||||||
|
due to loss of data or any other reason.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Feedback
|
||||||
|
========
|
||||||
|
|
||||||
|
If you have any problem, suggestion, comment, or you found a bug in my
|
||||||
|
utility, you can send a message to nirsofer@yahoo.com
|
||||||
704
deprecated-rewrite/Windows/Windows/Other/cmder.xml
Normal file
704
deprecated-rewrite/Windows/Windows/Other/cmder.xml
Normal file
@ -0,0 +1,704 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<key name="Software">
|
||||||
|
<key name="ConEmu">
|
||||||
|
<key name=".Vanilla" modified="2018-12-31 12:28:23" build="180528">
|
||||||
|
<value name="Language" type="string" data="en"/>
|
||||||
|
<value name="StartType" type="hex" data="02"/>
|
||||||
|
<value name="CmdLine" type="string" data=""/>
|
||||||
|
<value name="StartTasksFile" type="string" data=""/>
|
||||||
|
<value name="StartTasksName" type="string" data="{cmd::Cmder}"/>
|
||||||
|
<value name="StartFarFolders" type="hex" data="00"/>
|
||||||
|
<value name="StartFarEditors" type="hex" data="00"/>
|
||||||
|
<value name="StartCreateDelay" type="ulong" data="100"/>
|
||||||
|
<value name="ColorTable00" type="dword" data="00222827"/>
|
||||||
|
<value name="ColorTable01" type="dword" data="009e5401"/>
|
||||||
|
<value name="ColorTable02" type="dword" data="0004aa74"/>
|
||||||
|
<value name="ColorTable03" type="dword" data="00a6831a"/>
|
||||||
|
<value name="ColorTable04" type="dword" data="003403a7"/>
|
||||||
|
<value name="ColorTable05" type="dword" data="009c5689"/>
|
||||||
|
<value name="ColorTable06" type="dword" data="0049b6b6"/>
|
||||||
|
<value name="ColorTable07" type="dword" data="00cacaca"/>
|
||||||
|
<value name="ColorTable08" type="dword" data="007c7c7c"/>
|
||||||
|
<value name="ColorTable09" type="dword" data="00f58303"/>
|
||||||
|
<value name="ColorTable10" type="dword" data="0006d08d"/>
|
||||||
|
<value name="ColorTable11" type="dword" data="00e5c258"/>
|
||||||
|
<value name="ColorTable12" type="dword" data="004b04f3"/>
|
||||||
|
<value name="ColorTable13" type="dword" data="00b87da8"/>
|
||||||
|
<value name="ColorTable14" type="dword" data="0081cccc"/>
|
||||||
|
<value name="ColorTable15" type="dword" data="00ffffff"/>
|
||||||
|
<value name="TextColorIdx" type="hex" data="10"/>
|
||||||
|
<value name="BackColorIdx" type="hex" data="10"/>
|
||||||
|
<value name="PopTextColorIdx" type="hex" data="10"/>
|
||||||
|
<value name="PopBackColorIdx" type="hex" data="10"/>
|
||||||
|
<value name="ExtendFonts" type="hex" data="00"/>
|
||||||
|
<value name="ExtendFontNormalIdx" type="hex" data="01"/>
|
||||||
|
<value name="ExtendFontBoldIdx" type="hex" data="0C"/>
|
||||||
|
<value name="ExtendFontItalicIdx" type="hex" data="0D"/>
|
||||||
|
<value name="CursorTypeActive" type="dword" data="000232c1"/>
|
||||||
|
<value name="CursorTypeInactive" type="dword" data="00823282"/>
|
||||||
|
<value name="ClipboardDetectLineEnd" type="hex" data="01"/>
|
||||||
|
<value name="ClipboardBashMargin" type="hex" data="00"/>
|
||||||
|
<value name="ClipboardTrimTrailing" type="hex" data="02"/>
|
||||||
|
<value name="ClipboardEOL" type="hex" data="00"/>
|
||||||
|
<value name="ClipboardArrowStart" type="hex" data="00"/>
|
||||||
|
<value name="ClipboardAllLines" type="hex" data="01"/>
|
||||||
|
<value name="ClipboardAllLinesPosix" type="hex" data="00"/>
|
||||||
|
<value name="ClipboardFirstLine" type="hex" data="01"/>
|
||||||
|
<value name="ClipboardFirstLinePosix" type="hex" data="00"/>
|
||||||
|
<value name="ClipboardClickPromptPosition" type="hex" data="00"/>
|
||||||
|
<value name="ClipboardDeleteLeftWord" type="hex" data="01"/>
|
||||||
|
<value name="TrueColorerSupport" type="hex" data="01"/>
|
||||||
|
<value name="VividColors" type="hex" data="01"/>
|
||||||
|
<value name="FadeInactive" type="hex" data="01"/>
|
||||||
|
<value name="FadeInactiveLow" type="hex" data="00"/>
|
||||||
|
<value name="FadeInactiveHigh" type="hex" data="C8"/>
|
||||||
|
<value name="ConVisible" type="hex" data="00"/>
|
||||||
|
<value name="UseInjects" type="hex" data="01"/>
|
||||||
|
<value name="SetDefaultTerminal" type="hex" data="00"/>
|
||||||
|
<value name="SetDefaultTerminalStartup" type="hex" data="00"/>
|
||||||
|
<value name="SetDefaultTerminalStartupTSA" type="hex" data="01"/>
|
||||||
|
<value name="DefaultTerminalAgressive" type="hex" data="01"/>
|
||||||
|
<value name="DefaultTerminalNoInjects" type="hex" data="00"/>
|
||||||
|
<value name="DefaultTerminalNewWindow" type="hex" data="00"/>
|
||||||
|
<value name="DefaultTerminalDebugLog" type="hex" data="00"/>
|
||||||
|
<value name="DefaultTerminalConfirm" type="hex" data="01"/>
|
||||||
|
<value name="DefaultTerminalApps" type="string" data="explorer.exe"/>
|
||||||
|
<value name="ProcessAnsi" type="hex" data="01"/>
|
||||||
|
<value name="AnsiExecution" type="hex" data="01"/>
|
||||||
|
<value name="AnsiAllowedCommands" type="multi">
|
||||||
|
<line data="cmd -cur_console:R /cGitShowBranch.cmd"/>
|
||||||
|
</value>
|
||||||
|
<value name="AnsiLog" type="hex" data="00"/>
|
||||||
|
<value name="AnsiLogPath" type="string" data="%ConEmuDir%\Logs\"/>
|
||||||
|
<value name="KillSshAgent" type="hex" data="01"/>
|
||||||
|
<value name="ProcessNewConArg" type="hex" data="01"/>
|
||||||
|
<value name="ProcessCmdStart" type="hex" data="01"/>
|
||||||
|
<value name="ProcessCtrlZ" type="hex" data="00"/>
|
||||||
|
<value name="SuppressBells" type="hex" data="01"/>
|
||||||
|
<value name="ConsoleExceptionHandler" type="hex" data="00"/>
|
||||||
|
<value name="UseClink" type="hex" data="01"/>
|
||||||
|
<value name="StoreTaskbarkTasks" type="hex" data="00"/>
|
||||||
|
<value name="StoreTaskbarCommands" type="hex" data="00"/>
|
||||||
|
<value name="JumpListAutoUpdate" type="hex" data="01"/>
|
||||||
|
<value name="SaveCmdHistory" type="hex" data="00"/>
|
||||||
|
<value name="SingleInstance" type="hex" data="00"/>
|
||||||
|
<value name="ShowHelpTooltips" type="hex" data="01"/>
|
||||||
|
<value name="Multi" type="hex" data="01"/>
|
||||||
|
<value name="Multi.ShowButtons" type="hex" data="00"/>
|
||||||
|
<value name="Multi.ShowSearch" type="hex" data="00"/>
|
||||||
|
<value name="Multi.NumberInCaption" type="hex" data="00"/>
|
||||||
|
<value name="Multi.CloseConfirmFlags" type="hex" data="04"/>
|
||||||
|
<value name="Multi.NewConfirm" type="hex" data="01"/>
|
||||||
|
<value name="Multi.DupConfirm" type="hex" data="01"/>
|
||||||
|
<value name="Multi.DetachConfirm" type="hex" data="01"/>
|
||||||
|
<value name="Multi.UseArrows" type="hex" data="00"/>
|
||||||
|
<value name="Multi.UseNumbers" type="hex" data="01"/>
|
||||||
|
<value name="Multi.UseWinTab" type="hex" data="00"/>
|
||||||
|
<value name="Multi.AutoCreate" type="hex" data="00"/>
|
||||||
|
<value name="Multi.LeaveOnClose" type="hex" data="00"/>
|
||||||
|
<value name="Multi.HideOnClose" type="hex" data="00"/>
|
||||||
|
<value name="Multi.MinByEsc" type="hex" data="02"/>
|
||||||
|
<value name="MapShiftEscToEsc" type="hex" data="01"/>
|
||||||
|
<value name="Multi.Iterate" type="hex" data="01"/>
|
||||||
|
<value name="Multi.SplitWidth" type="hex" data="04"/>
|
||||||
|
<value name="Multi.SplitHeight" type="hex" data="04"/>
|
||||||
|
<value name="KeyboardHooks" type="hex" data="02"/>
|
||||||
|
<value name="FontName" type="string" data="Consolas"/>
|
||||||
|
<value name="FontName2" type="string" data="Lucida Console"/>
|
||||||
|
<value name="FontAutoSize" type="hex" data="00"/>
|
||||||
|
<value name="FontSize" type="ulong" data="24"/>
|
||||||
|
<value name="FontSizeX" type="ulong" data="0"/>
|
||||||
|
<value name="FontUseDpi" type="hex" data="01"/>
|
||||||
|
<value name="FontUseUnits" type="hex" data="00"/>
|
||||||
|
<value name="FontSizeX2" type="ulong" data="0"/>
|
||||||
|
<value name="FontSizeX3" type="ulong" data="0"/>
|
||||||
|
<value name="FontCharSet" type="hex" data="00"/>
|
||||||
|
<value name="Anti-aliasing" type="ulong" data="6"/>
|
||||||
|
<value name="FontBold" type="hex" data="00"/>
|
||||||
|
<value name="FontItalic" type="hex" data="00"/>
|
||||||
|
<value name="Monospace" type="hex" data="01"/>
|
||||||
|
<value name="CompressLongStrings" type="hex" data="01"/>
|
||||||
|
<value name="BackGround Image show" type="hex" data="00"/>
|
||||||
|
<value name="BackGround Image" type="string" data="c:\back.bmp"/>
|
||||||
|
<value name="bgImageDarker" type="hex" data="FF"/>
|
||||||
|
<value name="bgImageColors" type="dword" data="ffffffff"/>
|
||||||
|
<value name="bgOperation" type="hex" data="00"/>
|
||||||
|
<value name="bgPluginAllowed" type="hex" data="01"/>
|
||||||
|
<value name="AlphaValue" type="hex" data="E2"/>
|
||||||
|
<value name="AlphaValueSeparate" type="hex" data="01"/>
|
||||||
|
<value name="AlphaValueInactive" type="hex" data="BB"/>
|
||||||
|
<value name="UserScreenTransparent" type="hex" data="00"/>
|
||||||
|
<value name="ColorKeyTransparent" type="hex" data="00"/>
|
||||||
|
<value name="ColorKeyValue" type="dword" data="00010101"/>
|
||||||
|
<value name="UseCurrentSizePos" type="hex" data="01"/>
|
||||||
|
<value name="AutoSaveSizePos" type="hex" data="01"/>
|
||||||
|
<value name="Cascaded" type="hex" data="01"/>
|
||||||
|
<value name="IntegralSize" type="hex" data="00"/>
|
||||||
|
<value name="WindowMode" type="dword" data="0000051f"/>
|
||||||
|
<value name="ConWnd X" type="long" data="331"/>
|
||||||
|
<value name="ConWnd Y" type="long" data="256"/>
|
||||||
|
<value name="LastMonitor" type="string" data="0,0,1920,1040"/>
|
||||||
|
<value name="ConWnd Width" type="dword" data="00000074"/>
|
||||||
|
<value name="ConWnd Height" type="dword" data="0000001a"/>
|
||||||
|
<value name="16bit Height" type="ulong" data="0"/>
|
||||||
|
<value name="QuakeStyle" type="hex" data="00"/>
|
||||||
|
<value name="Restore2ActiveMon" type="hex" data="00"/>
|
||||||
|
<value name="RestoreInactive" type="hex" data="00"/>
|
||||||
|
<value name="QuakeAnimation" type="ulong" data="300"/>
|
||||||
|
<value name="HideCaption" type="hex" data="00"/>
|
||||||
|
<value name="HideChildCaption" type="hex" data="01"/>
|
||||||
|
<value name="FocusInChildWindows" type="hex" data="01"/>
|
||||||
|
<value name="HideCaptionAlways" type="hex" data="00"/>
|
||||||
|
<value name="HideCaptionAlwaysFrame" type="hex" data="00"/>
|
||||||
|
<value name="HideCaptionAlwaysDelay" type="ulong" data="2000"/>
|
||||||
|
<value name="HideCaptionAlwaysDisappear" type="ulong" data="2000"/>
|
||||||
|
<value name="DownShowHiddenMessage" type="hex" data="00"/>
|
||||||
|
<value name="DownShowExOnTopMessage" type="hex" data="00"/>
|
||||||
|
<value name="ConsoleFontName" type="string" data="Lucida Console"/>
|
||||||
|
<value name="ConsoleFontWidth" type="long" data="3"/>
|
||||||
|
<value name="ConsoleFontHeight" type="long" data="5"/>
|
||||||
|
<value name="DynamicBufferHeight" type="hex" data="01"/>
|
||||||
|
<value name="DefaultBufferHeight" type="long" data="1000"/>
|
||||||
|
<value name="AutoBufferHeight" type="hex" data="01"/>
|
||||||
|
<value name="UseScrollLock" type="hex" data="01"/>
|
||||||
|
<value name="ComSpec.Type" type="hex" data="00"/>
|
||||||
|
<value name="ComSpec.Bits" type="hex" data="00"/>
|
||||||
|
<value name="ComSpec.UpdateEnv" type="hex" data="00"/>
|
||||||
|
<value name="ComSpec.EnvAddPath" type="hex" data="01"/>
|
||||||
|
<value name="ComSpec.EnvAddExePath" type="hex" data="01"/>
|
||||||
|
<value name="ComSpec.UncPaths" type="hex" data="01"/>
|
||||||
|
<value name="ComSpec.Path" type="string" data=""/>
|
||||||
|
<value name="EnvironmentSet" type="multi">
|
||||||
|
<line data="set PATH=%ConEmuBaseDir%\Scripts;%PATH%"/>
|
||||||
|
<line data="set FC_CONFIG_DIR=.\fonts"/>
|
||||||
|
<line data="set FONTCONFIG_FILE=fonts.conf"/>
|
||||||
|
<line data="set FONTCONFIG_PATH=.\fonts"/>
|
||||||
|
</value>
|
||||||
|
<value name="CTS.Intelligent" type="hex" data="01"/>
|
||||||
|
<value name="CTS.IntelligentExceptions" type="string" data="far|vim.exe"/>
|
||||||
|
<value name="CTS.AutoCopy" type="hex" data="01"/>
|
||||||
|
<value name="CTS.ResetOnRelease" type="hex" data="00"/>
|
||||||
|
<value name="CTS.IBeam" type="hex" data="01"/>
|
||||||
|
<value name="CTS.EndOnTyping" type="hex" data="00"/>
|
||||||
|
<value name="CTS.EndOnKeyPress" type="hex" data="00"/>
|
||||||
|
<value name="CTS.EraseBeforeReset" type="hex" data="01"/>
|
||||||
|
<value name="CTS.Freeze" type="hex" data="00"/>
|
||||||
|
<value name="CTS.SelectBlock" type="hex" data="01"/>
|
||||||
|
<value name="CTS.SelectText" type="hex" data="01"/>
|
||||||
|
<value name="CTS.HtmlFormat" type="hex" data="00"/>
|
||||||
|
<value name="CTS.ForceLocale" type="dword" data="00000000"/>
|
||||||
|
<value name="CTS.RBtnAction" type="hex" data="03"/>
|
||||||
|
<value name="CTS.MBtnAction" type="hex" data="00"/>
|
||||||
|
<value name="CTS.ColorIndex" type="hex" data="E0"/>
|
||||||
|
<value name="ClipboardConfirmEnter" type="hex" data="01"/>
|
||||||
|
<value name="ClipboardConfirmLonger" type="ulong" data="200"/>
|
||||||
|
<value name="FarGotoEditorOpt" type="hex" data="01"/>
|
||||||
|
<value name="FarGotoEditorPath" type="string" data='far.exe /e%1:%2 "%3"'/>
|
||||||
|
<value name="HighlightMouseRow" type="hex" data="00"/>
|
||||||
|
<value name="HighlightMouseCol" type="hex" data="00"/>
|
||||||
|
<value name="FixFarBorders" type="hex" data="01"/>
|
||||||
|
<value name="Anti-aliasing2" type="hex" data="00"/>
|
||||||
|
<value name="FixFarBordersRanges" type="string" data="2013-25C4;"/>
|
||||||
|
<value name="ExtendUCharMap" type="hex" data="01"/>
|
||||||
|
<value name="EnhanceGraphics" type="hex" data="01"/>
|
||||||
|
<value name="EnhanceButtons" type="hex" data="00"/>
|
||||||
|
<value name="PartBrush75" type="hex" data="C8"/>
|
||||||
|
<value name="PartBrush50" type="hex" data="96"/>
|
||||||
|
<value name="PartBrush25" type="hex" data="5A"/>
|
||||||
|
<value name="PartBrushBlack" type="hex" data="20"/>
|
||||||
|
<value name="RightClick opens context menu" type="hex" data="02"/>
|
||||||
|
<value name="RightClickMacro2" type="string" data=""/>
|
||||||
|
<value name="SendAltTab" type="hex" data="00"/>
|
||||||
|
<value name="SendAltEsc" type="hex" data="00"/>
|
||||||
|
<value name="SendAltPrintScrn" type="hex" data="00"/>
|
||||||
|
<value name="SendPrintScrn" type="hex" data="00"/>
|
||||||
|
<value name="SendCtrlEsc" type="hex" data="00"/>
|
||||||
|
<value name="Min2Tray" type="hex" data="00"/>
|
||||||
|
<value name="AlwaysShowTrayIcon" type="hex" data="00"/>
|
||||||
|
<value name="SafeFarClose" type="hex" data="01"/>
|
||||||
|
<value name="SafeFarCloseMacro" type="string" data=""/>
|
||||||
|
<value name="FARuseASCIIsort" type="hex" data="00"/>
|
||||||
|
<value name="ShellNoZoneCheck" type="hex" data="00"/>
|
||||||
|
<value name="FixAltOnAltTab" type="hex" data="00"/>
|
||||||
|
<value name="UseAltGrayPlus" type="hex" data="01"/>
|
||||||
|
<value name="DisableMouse" type="hex" data="01"/>
|
||||||
|
<value name="RSelectionFix" type="hex" data="01"/>
|
||||||
|
<value name="MouseSkipActivation" type="hex" data="01"/>
|
||||||
|
<value name="MouseSkipMoving" type="hex" data="01"/>
|
||||||
|
<value name="MouseDragWindow" type="hex" data="01"/>
|
||||||
|
<value name="FarHourglass" type="hex" data="01"/>
|
||||||
|
<value name="FarHourglassDelay" type="ulong" data="500"/>
|
||||||
|
<value name="Dnd" type="hex" data="01"/>
|
||||||
|
<value name="DndDrop" type="hex" data="01"/>
|
||||||
|
<value name="DefCopy" type="hex" data="01"/>
|
||||||
|
<value name="DropUseMenu" type="hex" data="02"/>
|
||||||
|
<value name="DragOverlay" type="hex" data="01"/>
|
||||||
|
<value name="DragShowIcons" type="hex" data="01"/>
|
||||||
|
<value name="DebugSteps" type="hex" data="01"/>
|
||||||
|
<value name="DebugLog" type="hex" data="00"/>
|
||||||
|
<value name="DragPanel" type="hex" data="02"/>
|
||||||
|
<value name="DragPanelBothEdges" type="hex" data="00"/>
|
||||||
|
<value name="KeyBarRClick" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Show" type="hex" data="00"/>
|
||||||
|
<value name="StatusBar.Flags" type="dword" data="00000002"/>
|
||||||
|
<value name="StatusFontFace" type="string" data="Tahoma"/>
|
||||||
|
<value name="StatusFontCharSet" type="ulong" data="0"/>
|
||||||
|
<value name="StatusFontHeight" type="long" data="14"/>
|
||||||
|
<value name="StatusBar.Color.Back" type="dword" data="00404040"/>
|
||||||
|
<value name="StatusBar.Color.Light" type="dword" data="00ffffff"/>
|
||||||
|
<value name="StatusBar.Color.Dark" type="dword" data="00a0a0a0"/>
|
||||||
|
<value name="StatusBar.Hide.VCon" type="hex" data="00"/>
|
||||||
|
<value name="StatusBar.Hide.CapsL" type="hex" data="00"/>
|
||||||
|
<value name="StatusBar.Hide.NumL" type="hex" data="00"/>
|
||||||
|
<value name="StatusBar.Hide.ScrL" type="hex" data="00"/>
|
||||||
|
<value name="StatusBar.Hide.VisL" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.Lang" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.KeyHooks" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.TMode" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.RMode" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.WPos" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.WSize" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.WClient" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.WWork" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.WVBack" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.WVDC" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.WMode" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.Style" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.StyleEx" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.hFore" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.hFocus" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.Zoom" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.Dpi" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.ABuf" type="hex" data="00"/>
|
||||||
|
<value name="StatusBar.Hide.CPos" type="hex" data="00"/>
|
||||||
|
<value name="StatusBar.Hide.CSize" type="hex" data="00"/>
|
||||||
|
<value name="StatusBar.Hide.BSize" type="hex" data="00"/>
|
||||||
|
<value name="StatusBar.Hide.CurX" type="hex" data="00"/>
|
||||||
|
<value name="StatusBar.Hide.CurY" type="hex" data="00"/>
|
||||||
|
<value name="StatusBar.Hide.CurS" type="hex" data="00"/>
|
||||||
|
<value name="StatusBar.Hide.CurI" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.CellI" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.ConEmuPID" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.ConEmuHWND" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.ConEmuView" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.Srv" type="hex" data="00"/>
|
||||||
|
<value name="StatusBar.Hide.SrvHWND" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.Transparency" type="hex" data="00"/>
|
||||||
|
<value name="StatusBar.Hide.New" type="hex" data="00"/>
|
||||||
|
<value name="StatusBar.Hide.Sync" type="hex" data="00"/>
|
||||||
|
<value name="StatusBar.Hide.Proc" type="hex" data="00"/>
|
||||||
|
<value name="StatusBar.Hide.Title" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.Time" type="hex" data="01"/>
|
||||||
|
<value name="StatusBar.Hide.Resize" type="hex" data="00"/>
|
||||||
|
<value name="Tabs" type="hex" data="01"/>
|
||||||
|
<value name="TabsLocation" type="hex" data="00"/>
|
||||||
|
<value name="TabIcons" type="hex" data="01"/>
|
||||||
|
<value name="OneTabPerGroup" type="hex" data="00"/>
|
||||||
|
<value name="ActivateSplitMouseOver" type="hex" data="01"/>
|
||||||
|
<value name="TabSelf" type="hex" data="01"/>
|
||||||
|
<value name="TabLazy" type="hex" data="01"/>
|
||||||
|
<value name="TabFlashChanged" type="long" data="8"/>
|
||||||
|
<value name="TabRecent" type="hex" data="00"/>
|
||||||
|
<value name="TabDblClick" type="ulong" data="1"/>
|
||||||
|
<value name="TabBtnDblClick" type="ulong" data="0"/>
|
||||||
|
<value name="TabsOnTaskBar" type="hex" data="02"/>
|
||||||
|
<value name="TaskBarOverlay" type="hex" data="01"/>
|
||||||
|
<value name="TaskbarProgress" type="hex" data="01"/>
|
||||||
|
<value name="TabCloseMacro" type="string" data=""/>
|
||||||
|
<value name="TabFontFace" type="string" data="Segoe UI"/>
|
||||||
|
<value name="TabFontCharSet" type="ulong" data="0"/>
|
||||||
|
<value name="TabFontHeight" type="long" data="16"/>
|
||||||
|
<value name="SaveAllEditors" type="string" data=""/>
|
||||||
|
<value name="ToolbarAddSpace" type="long" data="0"/>
|
||||||
|
<value name="TabConsole" type="string" data=" %n "/>
|
||||||
|
<value name="TabModifiedSuffix" type="string" data="[*]"/>
|
||||||
|
<value name="TabSkipWords" type="string" data="Administrator:|Администратор:"/>
|
||||||
|
<value name="TabPanels" type="string" data="<%c> %s"/>
|
||||||
|
<value name="TabEditor" type="string" data="<%c.%i>{%s}"/>
|
||||||
|
<value name="TabEditorModified" type="string" data="<%c.%i>[%s] *"/>
|
||||||
|
<value name="TabViewer" type="string" data="<%c.%i>[%s]"/>
|
||||||
|
<value name="TabLenMax" type="ulong" data="20"/>
|
||||||
|
<value name="AdminTitleSuffix" type="string" data=" (Admin)"/>
|
||||||
|
<value name="AdminShowShield" type="hex" data="01"/>
|
||||||
|
<value name="HideInactiveConsoleTabs" type="hex" data="00"/>
|
||||||
|
<value name="ShowFarWindows" type="hex" data="01"/>
|
||||||
|
<value name="TryToCenter" type="hex" data="01"/>
|
||||||
|
<value name="CenterConsolePad" type="ulong" data="8"/>
|
||||||
|
<value name="ShowScrollbar" type="hex" data="02"/>
|
||||||
|
<value name="ScrollBarAppearDelay" type="ulong" data="100"/>
|
||||||
|
<value name="ScrollBarDisappearDelay" type="ulong" data="1000"/>
|
||||||
|
<value name="IconID" type="ulong" data="1"/>
|
||||||
|
<value name="MainTimerElapse" type="ulong" data="10"/>
|
||||||
|
<value name="MainTimerInactiveElapse" type="ulong" data="1000"/>
|
||||||
|
<value name="AffinityMask" type="dword" data="00000000"/>
|
||||||
|
<value name="SkipFocusEvents" type="hex" data="00"/>
|
||||||
|
<value name="MonitorConsoleLang" type="hex" data="03"/>
|
||||||
|
<value name="SnapToDesktopEdges" type="hex" data="00"/>
|
||||||
|
<value name="AlwaysOnTop" type="hex" data="00"/>
|
||||||
|
<value name="SleepInBackground" type="hex" data="01"/>
|
||||||
|
<value name="RetardInactivePanes" type="hex" data="00"/>
|
||||||
|
<value name="MinimizeOnLoseFocus" type="hex" data="00"/>
|
||||||
|
<value name="DisableFarFlashing" type="hex" data="00"/>
|
||||||
|
<value name="DisableAllFlashing" type="hex" data="00"/>
|
||||||
|
<value name="FindText" type="string" data=""/>
|
||||||
|
<value name="FindMatchCase" type="hex" data="00"/>
|
||||||
|
<value name="FindMatchWholeWords" type="hex" data="00"/>
|
||||||
|
<value name="FindTransparent" type="hex" data="01"/>
|
||||||
|
<value name="PanView.BackColor" type="dword" data="30ffffff"/>
|
||||||
|
<value name="PanView.PFrame" type="long" data="1"/>
|
||||||
|
<value name="PanView.PFrameColor" type="dword" data="28808080"/>
|
||||||
|
<value name="PanView.SFrame" type="long" data="1"/>
|
||||||
|
<value name="PanView.SFrameColor" type="dword" data="07c0c0c0"/>
|
||||||
|
<value name="PanView.Thumbs.ImgSize" type="long" data="96"/>
|
||||||
|
<value name="PanView.Thumbs.SpaceX1" type="long" data="1"/>
|
||||||
|
<value name="PanView.Thumbs.SpaceY1" type="long" data="1"/>
|
||||||
|
<value name="PanView.Thumbs.SpaceX2" type="long" data="5"/>
|
||||||
|
<value name="PanView.Thumbs.SpaceY2" type="long" data="20"/>
|
||||||
|
<value name="PanView.Thumbs.LabelSpacing" type="long" data="2"/>
|
||||||
|
<value name="PanView.Thumbs.LabelPadding" type="long" data="0"/>
|
||||||
|
<value name="PanView.Thumbs.FontName" type="string" data="Tahoma"/>
|
||||||
|
<value name="PanView.Thumbs.FontHeight" type="long" data="14"/>
|
||||||
|
<value name="PanView.Tiles.ImgSize" type="long" data="48"/>
|
||||||
|
<value name="PanView.Tiles.SpaceX1" type="long" data="4"/>
|
||||||
|
<value name="PanView.Tiles.SpaceY1" type="long" data="4"/>
|
||||||
|
<value name="PanView.Tiles.SpaceX2" type="long" data="172"/>
|
||||||
|
<value name="PanView.Tiles.SpaceY2" type="long" data="4"/>
|
||||||
|
<value name="PanView.Tiles.LabelSpacing" type="long" data="4"/>
|
||||||
|
<value name="PanView.Tiles.LabelPadding" type="long" data="1"/>
|
||||||
|
<value name="PanView.Tiles.FontName" type="string" data="Tahoma"/>
|
||||||
|
<value name="PanView.Tiles.FontHeight" type="long" data="14"/>
|
||||||
|
<value name="PanView.LoadPreviews" type="hex" data="03"/>
|
||||||
|
<value name="PanView.LoadFolders" type="hex" data="01"/>
|
||||||
|
<value name="PanView.LoadTimeout" type="ulong" data="15"/>
|
||||||
|
<value name="PanView.MaxZoom" type="ulong" data="600"/>
|
||||||
|
<value name="PanView.UsePicView2" type="hex" data="01"/>
|
||||||
|
<value name="PanView.RestoreOnStartup" type="hex" data="00"/>
|
||||||
|
<value name="Update.VerLocation" type="string" data=""/>
|
||||||
|
<value name="Update.CheckOnStartup" type="hex" data="01"/>
|
||||||
|
<value name="Update.CheckHourly" type="hex" data="00"/>
|
||||||
|
<value name="Update.ConfirmDownload" type="hex" data="01"/>
|
||||||
|
<value name="Update.UseBuilds" type="hex" data="01"/>
|
||||||
|
<value name="Update.InetTool" type="hex" data="00"/>
|
||||||
|
<value name="Update.InetToolCmd" type="string" data=""/>
|
||||||
|
<value name="Update.UseProxy" type="hex" data="00"/>
|
||||||
|
<value name="Update.Proxy" type="string" data=""/>
|
||||||
|
<value name="Update.ProxyUser" type="string" data=""/>
|
||||||
|
<value name="Update.ProxyPassword" type="string" data=""/>
|
||||||
|
<value name="Update.ExeCmdLine" type="string" data=""/>
|
||||||
|
<value name="Update.ArcCmdLine" type="string" data=""/>
|
||||||
|
<value name="Update.DownloadPath" type="string" data="%TEMP%\ConEmu"/>
|
||||||
|
<value name="Update.LeavePackages" type="hex" data="00"/>
|
||||||
|
<value name="Update.PostUpdateCmd" type="string" data="echo Last successful update>ConEmuUpdate.info && date /t>>ConEmuUpdate.info && time /t>>ConEmuUpdate.info"/>
|
||||||
|
<key name="HotKeys" modified="2018-12-31 12:28:23" build="180528">
|
||||||
|
<value name="KeyMacroVersion" type="hex" data="02"/>
|
||||||
|
<value name="Multi.Modifier" type="dword" data="00000011"/>
|
||||||
|
<value name="Multi.ArrowsModifier" type="dword" data="0000005b"/>
|
||||||
|
<value name="MinimizeRestore" type="dword" data="000011c0"/>
|
||||||
|
<value name="MinimizeRestore2" type="dword" data="00000000"/>
|
||||||
|
<value name="GlobalRestore" type="dword" data="00000000"/>
|
||||||
|
<value name="CdExplorerPath" type="dword" data="00000000"/>
|
||||||
|
<value name="ForcedFullScreen" type="dword" data="12115b0d"/>
|
||||||
|
<value name="SwitchGuiFocus" type="dword" data="00000000"/>
|
||||||
|
<value name="SetFocusGui" type="dword" data="00000000"/>
|
||||||
|
<value name="SetFocusChild" type="dword" data="00000000"/>
|
||||||
|
<value name="ChildSystemMenu" type="dword" data="000011ff"/>
|
||||||
|
<value name="CheckUpdates" type="dword" data="00105b55"/>
|
||||||
|
<value name="Multi.NewConsole" type="dword" data="00000000"/>
|
||||||
|
<value name="Multi.NewConsoleShift" type="dword" data="00001154"/>
|
||||||
|
<value name="Multi.CmdKey" type="dword" data="00000000"/>
|
||||||
|
<value name="Multi.NewWndConfirm" type="dword" data="00000000"/>
|
||||||
|
<value name="Multi.NewConsolePopup" type="dword" data="00000000"/>
|
||||||
|
<value name="Multi.NewConsolePopup2" type="dword" data="00000000"/>
|
||||||
|
<value name="Multi.NewAttach" type="dword" data="00000000"/>
|
||||||
|
<value name="Multi.NewSplitV" type="dword" data="00000000"/>
|
||||||
|
<value name="Multi.NewSplitH" type="dword" data="00000000"/>
|
||||||
|
<value name="Multi.SplitMaximize" type="dword" data="00005d0d"/>
|
||||||
|
<value name="Multi.SplitSizeVU" type="dword" data="00105d26"/>
|
||||||
|
<value name="Multi.SplitSizeVD" type="dword" data="00105d28"/>
|
||||||
|
<value name="Multi.SplitSizeHL" type="dword" data="00105d25"/>
|
||||||
|
<value name="Multi.SplitSizeHR" type="dword" data="00105d27"/>
|
||||||
|
<value name="Key.TabPane1" type="dword" data="00000000"/>
|
||||||
|
<value name="Key.TabPane2" type="dword" data="00000000"/>
|
||||||
|
<value name="Multi.SplitFocusU" type="dword" data="00005d26"/>
|
||||||
|
<value name="Multi.SplitFocusD" type="dword" data="00005d28"/>
|
||||||
|
<value name="Multi.SplitFocusL" type="dword" data="00005d25"/>
|
||||||
|
<value name="Multi.SplitFocusR" type="dword" data="00005d27"/>
|
||||||
|
<value name="Multi.SplitSwap" type="dword" data="00125d58"/>
|
||||||
|
<value name="Multi.SplitSwapU" type="dword" data="00125d26"/>
|
||||||
|
<value name="Multi.SplitSwapD" type="dword" data="00125d28"/>
|
||||||
|
<value name="Multi.SplitSwapL" type="dword" data="00125d25"/>
|
||||||
|
<value name="Multi.SplitSwapR" type="dword" data="00125d27"/>
|
||||||
|
<value name="Multi.Next" type="dword" data="00000000"/>
|
||||||
|
<value name="Multi.NextShift" type="dword" data="00000000"/>
|
||||||
|
<value name="Multi.Recreate" type="dword" data="00000000"/>
|
||||||
|
<value name="Multi.AltCon" type="dword" data="00000000"/>
|
||||||
|
<value name="Multi.Pause" type="dword" data="80808013"/>
|
||||||
|
<value name="Multi.Scroll" type="dword" data="00000000"/>
|
||||||
|
<value name="Multi.GroupInput" type="dword" data="00005d47"/>
|
||||||
|
<value name="Multi.GroupInputAll" type="dword" data="00105d47"/>
|
||||||
|
<value name="Multi.GroupInputKey" type="dword" data="00125d47"/>
|
||||||
|
<value name="Multi.Detach" type="dword" data="00000000"/>
|
||||||
|
<value name="Multi.Unfasten" type="dword" data="00000000"/>
|
||||||
|
<value name="Multi.Close" type="dword" data="00001157"/>
|
||||||
|
<value name="CloseTabKey" type="dword" data="00000000"/>
|
||||||
|
<value name="CloseGroupKey" type="dword" data="00000000"/>
|
||||||
|
<value name="CloseGroupPrcKey" type="dword" data="00000000"/>
|
||||||
|
<value name="CloseAllConKey" type="dword" data="00000000"/>
|
||||||
|
<value name="CloseZombiesKey" type="dword" data="00000000"/>
|
||||||
|
<value name="CloseExceptConKey" type="dword" data="00000000"/>
|
||||||
|
<value name="CloseToRightKey" type="dword" data="00000000"/>
|
||||||
|
<value name="KillProcessKey" type="dword" data="00000000"/>
|
||||||
|
<value name="KillAllButShellKey" type="dword" data="00105b2e"/>
|
||||||
|
<value name="DuplicateRootKey" type="dword" data="00000000"/>
|
||||||
|
<value name="CloseConEmuKey" type="dword" data="00001273"/>
|
||||||
|
<value name="Multi.Rename" type="dword" data="00000000"/>
|
||||||
|
<value name="AffinityPriorityKey" type="dword" data="00005d41"/>
|
||||||
|
<value name="Multi.MoveLeft" type="dword" data="00125b25"/>
|
||||||
|
<value name="Multi.MoveRight" type="dword" data="00125b27"/>
|
||||||
|
<value name="CTS.VkBlockStart" type="dword" data="00000000"/>
|
||||||
|
<value name="CTS.VkTextStart" type="dword" data="00000000"/>
|
||||||
|
<value name="CTS.VkCopyFmt0" type="dword" data="00001143"/>
|
||||||
|
<value name="CTS.VkCopyFmt1" type="dword" data="00101143"/>
|
||||||
|
<value name="CTS.VkCopyFmt2" type="dword" data="00000000"/>
|
||||||
|
<value name="CTS.VkCopyAll" type="dword" data="00000000"/>
|
||||||
|
<value name="HighlightMouseSwitch" type="dword" data="00005d4c"/>
|
||||||
|
<value name="HighlightMouseSwitchX" type="dword" data="00005d58"/>
|
||||||
|
<value name="Multi.ShowTabsList" type="dword" data="00000000"/>
|
||||||
|
<value name="Multi.ShowTabsList2" type="dword" data="00000000"/>
|
||||||
|
<value name="ClipboardVkAllLines" type="dword" data="0000102d"/>
|
||||||
|
<value name="ClipboardVkFirstLine" type="dword" data="00001156"/>
|
||||||
|
<value name="Key.AltNumpad" type="dword" data="00000000"/>
|
||||||
|
<value name="DeleteWordToLeft" type="dword" data="00001108"/>
|
||||||
|
<value name="FindTextKey" type="dword" data="00005d46"/>
|
||||||
|
<value name="ScreenshotKey" type="dword" data="00000000"/>
|
||||||
|
<value name="ScreenshotFullKey" type="dword" data="00000000"/>
|
||||||
|
<value name="ShowStatusBarKey" type="dword" data="00000000"/>
|
||||||
|
<value name="ShowTabBarKey" type="dword" data="00000000"/>
|
||||||
|
<value name="ShowCaptionKey" type="dword" data="00000000"/>
|
||||||
|
<value name="AlwaysOnTopKey" type="dword" data="00000000"/>
|
||||||
|
<value name="TransparencyInc" type="dword" data="00000000"/>
|
||||||
|
<value name="TransparencyDec" type="dword" data="00000000"/>
|
||||||
|
<value name="Key.TabMenu" type="dword" data="00000000"/>
|
||||||
|
<value name="Key.TabMenu2" type="dword" data="00000000"/>
|
||||||
|
<value name="Key.Maximize" type="dword" data="00000000"/>
|
||||||
|
<value name="Key.MaximizeWidth" type="dword" data="00000000"/>
|
||||||
|
<value name="Key.MaximizeHeight" type="dword" data="00000000"/>
|
||||||
|
<value name="Key.TileToLeft" type="dword" data="00000000"/>
|
||||||
|
<value name="Key.TileToRight" type="dword" data="00000000"/>
|
||||||
|
<value name="Key.JumpActiveMonitor" type="dword" data="00000000"/>
|
||||||
|
<value name="Key.JumpPrevMonitor" type="dword" data="00000000"/>
|
||||||
|
<value name="Key.JumpNextMonitor" type="dword" data="00000000"/>
|
||||||
|
<value name="Key.FullScreen" type="dword" data="0000120d"/>
|
||||||
|
<value name="Key.SysMenu" type="dword" data="00000000"/>
|
||||||
|
<value name="Key.SysMenu2" type="dword" data="00001102"/>
|
||||||
|
<value name="Key.DebugProcess" type="dword" data="00105b44"/>
|
||||||
|
<value name="Key.DumpProcess" type="dword" data="00000000"/>
|
||||||
|
<value name="Key.DumpTree" type="dword" data="00000000"/>
|
||||||
|
<value name="Key.BufUp" type="dword" data="00001126"/>
|
||||||
|
<value name="Key.BufDn" type="dword" data="00001128"/>
|
||||||
|
<value name="Key.BufPgUp" type="dword" data="00001121"/>
|
||||||
|
<value name="Key.BufPgDn" type="dword" data="00001122"/>
|
||||||
|
<value name="Key.BufHfPgUp" type="dword" data="00005d21"/>
|
||||||
|
<value name="Key.BufHfPgDn" type="dword" data="00005d22"/>
|
||||||
|
<value name="Key.BufTop" type="dword" data="00005d24"/>
|
||||||
|
<value name="Key.BufBottom" type="dword" data="00005d23"/>
|
||||||
|
<value name="Key.BufPrUp" type="dword" data="00121121"/>
|
||||||
|
<value name="Key.BufPrDn" type="dword" data="00121122"/>
|
||||||
|
<value name="Key.BufCursor" type="dword" data="00005d08"/>
|
||||||
|
<value name="Key.ResetTerm" type="dword" data="00000000"/>
|
||||||
|
<value name="FontLargerKey" type="dword" data="00000000"/>
|
||||||
|
<value name="FontSmallerKey" type="dword" data="00000000"/>
|
||||||
|
<value name="FontOriginalKey" type="dword" data="00001104"/>
|
||||||
|
<value name="PasteFileKey" type="dword" data="00101146"/>
|
||||||
|
<value name="PastePathKey" type="dword" data="00101144"/>
|
||||||
|
<value name="PasteCygwinKey" type="dword" data="00005d2d"/>
|
||||||
|
<value name="KeyMacro01" type="dword" data="00a01231"/>
|
||||||
|
<value name="KeyMacro01.Text" type="string" data="Task(1)"/>
|
||||||
|
<value name="KeyMacro02" type="dword" data="00a01232"/>
|
||||||
|
<value name="KeyMacro02.Text" type="string" data="Task(2)"/>
|
||||||
|
<value name="KeyMacro03" type="dword" data="000011d0"/>
|
||||||
|
<value name="KeyMacro03.Text" type="string" data="FontSetSize(1,2)"/>
|
||||||
|
<value name="KeyMacro04" type="dword" data="000011d1"/>
|
||||||
|
<value name="KeyMacro04.Text" type="string" data="FontSetSize(1,-2)"/>
|
||||||
|
<value name="KeyMacro05" type="dword" data="00a01233"/>
|
||||||
|
<value name="KeyMacro05.Text" type="string" data="Task(3)"/>
|
||||||
|
<value name="KeyMacro06" type="dword" data="00a01234"/>
|
||||||
|
<value name="KeyMacro06.Text" type="string" data="Task(4)"/>
|
||||||
|
<value name="KeyMacro07" type="dword" data="00a01235"/>
|
||||||
|
<value name="KeyMacro07.Text" type="string" data="Task(5)"/>
|
||||||
|
<value name="KeyMacro08" type="dword" data="00a01236"/>
|
||||||
|
<value name="KeyMacro08.Text" type="string" data="Task(6)"/>
|
||||||
|
<value name="KeyMacro09" type="dword" data="00a01237"/>
|
||||||
|
<value name="KeyMacro09.Text" type="string" data="Task(7)"/>
|
||||||
|
<value name="KeyMacro10" type="dword" data="00a01238"/>
|
||||||
|
<value name="KeyMacro10.Text" type="string" data="Task(8)"/>
|
||||||
|
<value name="KeyMacro11" type="dword" data="00a01239"/>
|
||||||
|
<value name="KeyMacro11.Text" type="string" data="Task(9)"/>
|
||||||
|
<value name="KeyMacro12" type="dword" data="00000000"/>
|
||||||
|
<value name="KeyMacro12.Text" type="string" data=""/>
|
||||||
|
<value name="KeyMacro13" type="dword" data="00000000"/>
|
||||||
|
<value name="KeyMacro13.Text" type="string" data=""/>
|
||||||
|
<value name="KeyMacro14" type="dword" data="00000000"/>
|
||||||
|
<value name="KeyMacro14.Text" type="string" data=""/>
|
||||||
|
<value name="KeyMacro15" type="dword" data="00000000"/>
|
||||||
|
<value name="KeyMacro15.Text" type="string" data=""/>
|
||||||
|
<value name="KeyMacro16" type="dword" data="00000000"/>
|
||||||
|
<value name="KeyMacro16.Text" type="string" data=""/>
|
||||||
|
<value name="KeyMacro17" type="dword" data="00000000"/>
|
||||||
|
<value name="KeyMacro17.Text" type="string" data=""/>
|
||||||
|
<value name="KeyMacro18" type="dword" data="00000000"/>
|
||||||
|
<value name="KeyMacro18.Text" type="string" data=""/>
|
||||||
|
<value name="KeyMacro19" type="dword" data="00000000"/>
|
||||||
|
<value name="KeyMacro19.Text" type="string" data=""/>
|
||||||
|
<value name="KeyMacro20" type="dword" data="00000000"/>
|
||||||
|
<value name="KeyMacro20.Text" type="string" data=""/>
|
||||||
|
<value name="KeyMacro21" type="dword" data="00000000"/>
|
||||||
|
<value name="KeyMacro21.Text" type="string" data=""/>
|
||||||
|
<value name="KeyMacro22" type="dword" data="00000000"/>
|
||||||
|
<value name="KeyMacro22.Text" type="string" data=""/>
|
||||||
|
<value name="KeyMacro23" type="dword" data="00000000"/>
|
||||||
|
<value name="KeyMacro23.Text" type="string" data=""/>
|
||||||
|
<value name="KeyMacro24" type="dword" data="00000000"/>
|
||||||
|
<value name="KeyMacro24.Text" type="string" data=""/>
|
||||||
|
<value name="KeyMacro25" type="dword" data="00000000"/>
|
||||||
|
<value name="KeyMacro25.Text" type="string" data=""/>
|
||||||
|
<value name="KeyMacro26" type="dword" data="00000000"/>
|
||||||
|
<value name="KeyMacro26.Text" type="string" data=""/>
|
||||||
|
<value name="KeyMacro27" type="dword" data="00000000"/>
|
||||||
|
<value name="KeyMacro27.Text" type="string" data=""/>
|
||||||
|
<value name="KeyMacro28" type="dword" data="00000000"/>
|
||||||
|
<value name="KeyMacro28.Text" type="string" data=""/>
|
||||||
|
<value name="KeyMacro29" type="dword" data="00000000"/>
|
||||||
|
<value name="KeyMacro29.Text" type="string" data=""/>
|
||||||
|
<value name="KeyMacro30" type="dword" data="00000000"/>
|
||||||
|
<value name="KeyMacro30.Text" type="string" data=""/>
|
||||||
|
<value name="KeyMacro31" type="dword" data="00000000"/>
|
||||||
|
<value name="KeyMacro31.Text" type="string" data=""/>
|
||||||
|
<value name="KeyMacro32" type="dword" data="00000000"/>
|
||||||
|
<value name="KeyMacro32.Text" type="string" data=""/>
|
||||||
|
<value name="CTS.VkBlock" type="hex" data="A4"/>
|
||||||
|
<value name="CTS.VkText" type="hex" data="A0"/>
|
||||||
|
<value name="CTS.VkAct" type="hex" data="00"/>
|
||||||
|
<value name="CTS.VkPrompt" type="hex" data="00"/>
|
||||||
|
<value name="FarGotoEditorVk" type="hex" data="A2"/>
|
||||||
|
<value name="DndLKey" type="hex" data="00"/>
|
||||||
|
<value name="DndRKey" type="hex" data="A2"/>
|
||||||
|
<value name="WndDragKey" type="dword" data="00121101"/>
|
||||||
|
</key>
|
||||||
|
<key name="Tasks" modified="2018-12-31 12:28:23" build="180528">
|
||||||
|
<value name="Count" type="long" data="9"/>
|
||||||
|
<key name="Task1" modified="2018-12-31 12:28:23" build="180528">
|
||||||
|
<value name="Name" type="string" data="{cmd::Cmder as Admin}"/>
|
||||||
|
<value name="Flags" type="dword" data="00000003"/>
|
||||||
|
<value name="Hotkey" type="dword" data="00000000"/>
|
||||||
|
<value name="GuiArgs" type="string" data=' /icon "%CMDER_ROOT%\icons\cmder.ico"'/>
|
||||||
|
<value name="Active" type="long" data="0"/>
|
||||||
|
<value name="Count" type="long" data="1"/>
|
||||||
|
<value name="Cmd1" type="string" data='*cmd /k ""%ConEmuDir%\..\init.bat" "'/>
|
||||||
|
</key>
|
||||||
|
<key name="Task2" modified="2018-12-31 12:28:23" build="180528">
|
||||||
|
<value name="Name" type="string" data="{cmd::Cmder}"/>
|
||||||
|
<value name="Flags" type="dword" data="00000000"/>
|
||||||
|
<value name="Hotkey" type="dword" data="00000000"/>
|
||||||
|
<value name="GuiArgs" type="string" data=' /icon "%CMDER_ROOT%\icons\cmder.ico"'/>
|
||||||
|
<value name="Active" type="long" data="0"/>
|
||||||
|
<value name="Count" type="long" data="1"/>
|
||||||
|
<value name="Cmd1" type="string" data='cmd /k ""%ConEmuDir%\..\init.bat" "'/>
|
||||||
|
</key>
|
||||||
|
<key name="Task3" modified="2018-12-31 12:28:23" build="180528">
|
||||||
|
<value name="Name" type="string" data="{PowerShell::PowerShell as Admin}"/>
|
||||||
|
<value name="Flags" type="dword" data="00000000"/>
|
||||||
|
<value name="Hotkey" type="dword" data="00000000"/>
|
||||||
|
<value name="GuiArgs" type="string" data=' /icon "%CMDER_ROOT%\icons\cmder.ico"'/>
|
||||||
|
<value name="Active" type="long" data="0"/>
|
||||||
|
<value name="Count" type="long" data="1"/>
|
||||||
|
<value name="Cmd1" type="string" data='*PowerShell -ExecutionPolicy Bypass -NoLogo -NoProfile -NoExit -Command "Invoke-Expression '. ''%ConEmuDir%\..\profile.ps1'''"'/>
|
||||||
|
</key>
|
||||||
|
<key name="Task4" modified="2018-12-31 12:28:23" build="180528">
|
||||||
|
<value name="Name" type="string" data="{PowerShell::PowerShell}"/>
|
||||||
|
<value name="Flags" type="dword" data="00000000"/>
|
||||||
|
<value name="Hotkey" type="dword" data="00000000"/>
|
||||||
|
<value name="GuiArgs" type="string" data=' /icon "%CMDER_ROOT%\icons\cmder.ico"'/>
|
||||||
|
<value name="Active" type="long" data="0"/>
|
||||||
|
<value name="Count" type="long" data="1"/>
|
||||||
|
<value name="Cmd1" type="string" data='PowerShell -ExecutionPolicy Bypass -NoLogo -NoProfile -NoExit -Command "Invoke-Expression '. ''%ConEmuDir%\..\profile.ps1'''"'/>
|
||||||
|
</key>
|
||||||
|
<key name="Task5" modified="2018-12-31 12:28:23" build="180528">
|
||||||
|
<value name="Name" type="string" data="{bash::mintty as Admin}"/>
|
||||||
|
<value name="Flags" type="dword" data="00000000"/>
|
||||||
|
<value name="Hotkey" type="dword" data="00000000"/>
|
||||||
|
<value name="GuiArgs" type="string" data='/icon "%ConEmuDir%\..\git-for-windows\usr\share\git\git-for-windows.ico"'/>
|
||||||
|
<value name="Active" type="long" data="0"/>
|
||||||
|
<value name="Count" type="long" data="1"/>
|
||||||
|
<value name="Cmd1" type="string" data='*"%ConEmuDir%\..\git-for-windows\usr\bin\mintty.exe" /bin/bash -l'/>
|
||||||
|
</key>
|
||||||
|
<key name="Task6" modified="2018-12-31 12:28:23" build="180528">
|
||||||
|
<value name="Name" type="string" data="{bash::mintty}"/>
|
||||||
|
<value name="Flags" type="dword" data="00000000"/>
|
||||||
|
<value name="Hotkey" type="dword" data="00000000"/>
|
||||||
|
<value name="GuiArgs" type="string" data='/icon "%ConEmuDir%\..\git-for-windows\usr\share\git\git-for-windows.ico"'/>
|
||||||
|
<value name="Active" type="long" data="0"/>
|
||||||
|
<value name="Count" type="long" data="1"/>
|
||||||
|
<value name="Cmd1" type="string" data='"%ConEmuDir%\..\git-for-windows\usr\bin\mintty.exe" /bin/bash -l'/>
|
||||||
|
</key>
|
||||||
|
<key name="Task7" modified="2018-12-31 12:28:23" build="180528">
|
||||||
|
<value name="Name" type="string" data="{bash::bash as Admin}"/>
|
||||||
|
<value name="Flags" type="dword" data="00000000"/>
|
||||||
|
<value name="Hotkey" type="dword" data="00000000"/>
|
||||||
|
<value name="GuiArgs" type="string" data=' /icon "%CMDER_ROOT%\icons\cmder.ico"'/>
|
||||||
|
<value name="Active" type="long" data="0"/>
|
||||||
|
<value name="Count" type="long" data="1"/>
|
||||||
|
<value name="Cmd1" type="string" data='*cmd /c ""%ConEmuDir%\..\git-for-windows\bin\bash" --login -i"'/>
|
||||||
|
</key>
|
||||||
|
<key name="Task8" modified="2018-12-31 12:28:23" build="180528">
|
||||||
|
<value name="Name" type="string" data="{bash::bash}"/>
|
||||||
|
<value name="Flags" type="dword" data="00000000"/>
|
||||||
|
<value name="Hotkey" type="dword" data="00000000"/>
|
||||||
|
<value name="GuiArgs" type="string" data=' /icon "%CMDER_ROOT%\icons\cmder.ico"'/>
|
||||||
|
<value name="Active" type="long" data="0"/>
|
||||||
|
<value name="Count" type="long" data="1"/>
|
||||||
|
<value name="Cmd1" type="string" data='cmd /c ""%ConEmuDir%\..\git-for-windows\bin\bash" --login -i"'/>
|
||||||
|
</key>
|
||||||
|
<key name="Task9" modified="2018-12-31 12:28:23" build="180528">
|
||||||
|
<value name="Name" type="string" data="{WSL::bash}"/>
|
||||||
|
<value name="Flags" type="dword" data="00000000"/>
|
||||||
|
<value name="Hotkey" type="dword" data="00000000"/>
|
||||||
|
<value name="GuiArgs" type="string" data='-icon "%USERPROFILE%\AppData\Local\lxss\bash.ico"'/>
|
||||||
|
<value name="Active" type="long" data="0"/>
|
||||||
|
<value name="Count" type="long" data="1"/>
|
||||||
|
<value name="Cmd1" type="string" data='set "PATH=%ConEmuBaseDirShort%\wsl;%PATH%" & %ConEmuBaseDirShort%\conemu-cyg-64.exe --wsl -cur_console:pm:/mnt'/>
|
||||||
|
</key>
|
||||||
|
</key>
|
||||||
|
<key name="Apps" modified="2018-12-31 12:28:23" build="180528">
|
||||||
|
<value name="Count" type="long" data="0"/>
|
||||||
|
</key>
|
||||||
|
<key name="Colors" modified="2018-12-31 12:28:23" build="180528">
|
||||||
|
<value name="Count" type="long" data="1"/>
|
||||||
|
<key name="Palette1" modified="2018-12-31 12:28:23" build="180528">
|
||||||
|
<value name="Name" type="string" data="Monokai"/>
|
||||||
|
<value name="TextColorIdx" type="hex" data="10"/>
|
||||||
|
<value name="BackColorIdx" type="hex" data="10"/>
|
||||||
|
<value name="PopTextColorIdx" type="hex" data="10"/>
|
||||||
|
<value name="PopBackColorIdx" type="hex" data="10"/>
|
||||||
|
<value name="ColorTable00" type="dword" data="00222827"/>
|
||||||
|
<value name="ColorTable01" type="dword" data="009e5401"/>
|
||||||
|
<value name="ColorTable02" type="dword" data="0004aa74"/>
|
||||||
|
<value name="ColorTable03" type="dword" data="00a6831a"/>
|
||||||
|
<value name="ColorTable04" type="dword" data="003403a7"/>
|
||||||
|
<value name="ColorTable05" type="dword" data="009c5689"/>
|
||||||
|
<value name="ColorTable06" type="dword" data="0049b6b6"/>
|
||||||
|
<value name="ColorTable07" type="dword" data="00cacaca"/>
|
||||||
|
<value name="ColorTable08" type="dword" data="007c7c7c"/>
|
||||||
|
<value name="ColorTable09" type="dword" data="00f58303"/>
|
||||||
|
<value name="ColorTable10" type="dword" data="0006d08d"/>
|
||||||
|
<value name="ColorTable11" type="dword" data="00e5c258"/>
|
||||||
|
<value name="ColorTable12" type="dword" data="004b04f3"/>
|
||||||
|
<value name="ColorTable13" type="dword" data="00b87da8"/>
|
||||||
|
<value name="ColorTable14" type="dword" data="0081cccc"/>
|
||||||
|
<value name="ColorTable15" type="dword" data="00ffffff"/>
|
||||||
|
</key>
|
||||||
|
</key>
|
||||||
|
</key>
|
||||||
|
</key>
|
||||||
|
</key>
|
||||||
|
|
||||||
2
deprecated-rewrite/Windows/Windows/Other/config.xlaunch
Normal file
2
deprecated-rewrite/Windows/Windows/Other/config.xlaunch
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<XLaunch WindowMode="MultiWindow" ClientMode="NoClient" LocalClient="False" Display="-1" LocalProgram="xcalc" RemoteProgram="xterm" RemotePassword="" PrivateKey="" RemoteHost="" RemoteUser="" XDMCPHost="" XDMCPBroadcast="False" XDMCPIndirect="False" Clipboard="True" ClipboardPrimary="True" ExtraParams="" Wgl="True" DisableAC="False" XDMCPTerminate="False"/>
|
||||||
BIN
deprecated-rewrite/Windows/Windows/Other/md5c_x64.exe
Normal file
BIN
deprecated-rewrite/Windows/Windows/Other/md5c_x64.exe
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
deprecated-rewrite/Windows/Windows/TabProBG - Pink.png
Normal file
BIN
deprecated-rewrite/Windows/Windows/TabProBG - Pink.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
BIN
deprecated-rewrite/Windows/Windows/TabProBG.png
Normal file
BIN
deprecated-rewrite/Windows/Windows/TabProBG.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
BIN
deprecated-rewrite/Windows/Windows/TabProBlur.png
Normal file
BIN
deprecated-rewrite/Windows/Windows/TabProBlur.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 25 KiB |
BIN
deprecated-rewrite/Windows/Windows/Touch settings.ini
Normal file
BIN
deprecated-rewrite/Windows/Windows/Touch settings.ini
Normal file
Binary file not shown.
BIN
deprecated-rewrite/Windows/Windows/Touch settings.ini.tabletpro
Normal file
BIN
deprecated-rewrite/Windows/Windows/Touch settings.ini.tabletpro
Normal file
Binary file not shown.
BIN
deprecated-rewrite/Windows/Windows/onenote purple.ini
Normal file
BIN
deprecated-rewrite/Windows/Windows/onenote purple.ini
Normal file
Binary file not shown.
BIN
deprecated-rewrite/Windows/Windows/onenote purple.ini.tabletpro
Normal file
BIN
deprecated-rewrite/Windows/Windows/onenote purple.ini.tabletpro
Normal file
Binary file not shown.
19
deprecated-rewrite/Windows/color.ps1
Normal file
19
deprecated-rewrite/Windows/color.ps1
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
Write-Output 'Chose folder' '1) Desktop' '2) Surface'
|
||||||
|
$folder = Read-Host -Prompt 'Input your option'
|
||||||
|
$newColor = Read-Host -Prompt 'Input color'
|
||||||
|
|
||||||
|
if (!($newColor.Contains('#'))){
|
||||||
|
$newColor = "#" + $newColor
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($folder)
|
||||||
|
{
|
||||||
|
'1' {$folder = 'C:\Users\JawZ\OneDrive\Pictures\Gimp\Bookmarks\Desktop'}
|
||||||
|
'2' {$folder = 'C:\Users\JawZ\OneDrive\Pictures\Gimp\Bookmarks\Surface'}
|
||||||
|
}
|
||||||
|
|
||||||
|
$files = Get-ChildItem -Recurse -Path $folder *.png
|
||||||
|
foreach ($file in $files){
|
||||||
|
magick mogrify -format png -fill "$newColor" -colorize 100 $file.FullName
|
||||||
|
}
|
||||||
|
|
||||||
173
deprecated-rewrite/Windows/create.ps1
Normal file
173
deprecated-rewrite/Windows/create.ps1
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
Import-Module PSWriteColor
|
||||||
|
echo 'tits'
|
||||||
|
#Directory Variables
|
||||||
|
switch ($env:COMPUTERNAME){
|
||||||
|
"WORKSTATION"
|
||||||
|
{
|
||||||
|
$baseDir = 'D:\OneDrive\Pictures\MyArt'
|
||||||
|
}
|
||||||
|
"SURFACE"
|
||||||
|
{
|
||||||
|
$baseDir = 'C:\Users\JawZ\Pictures\My Art'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$template = "$baseDir\Assets\Template.clip"
|
||||||
|
$month = Get-Date -UFormat %B
|
||||||
|
$year = Get-Date -Format yyyy
|
||||||
|
|
||||||
|
function Write-Separator{Write-Color '---' -Color DarkGray}
|
||||||
|
|
||||||
|
function New-Patreon{
|
||||||
|
$directory = "$baseDir\Patreon"
|
||||||
|
Set-Location $directory
|
||||||
|
|
||||||
|
Write-Color 'Add number ', '(type 0x)' -Color Yellow, White
|
||||||
|
$number = Read-Host
|
||||||
|
|
||||||
|
Switch ($month){
|
||||||
|
'1' {$month = 'Jan'}
|
||||||
|
'01' {$month = 'Jan'}
|
||||||
|
'2' {$month = 'Feb'}
|
||||||
|
'02' {$month = 'Feb'}
|
||||||
|
'3' {$month = 'Mar'}
|
||||||
|
'03' {$month = 'Mar'}
|
||||||
|
'4' {$month = 'Apr'}
|
||||||
|
'04' {$month = 'Apr'}
|
||||||
|
'5' {$month = 'May'}
|
||||||
|
'05' {$month = 'May'}
|
||||||
|
'6' {$month = 'Jun'}
|
||||||
|
'06' {$month = 'Jun'}
|
||||||
|
'7' {$month = 'Jul'}
|
||||||
|
'07' {$month = 'Jul'}
|
||||||
|
'8' {$month = 'Aug'}
|
||||||
|
'08' {$month = 'Aug'}
|
||||||
|
'9' {$month = 'Sep'}
|
||||||
|
'09' {$month = 'Sep'}
|
||||||
|
'10' {$month = 'Oct'}
|
||||||
|
'11' {$month = 'Nov'}
|
||||||
|
'12' {$month = 'Dec'}
|
||||||
|
}
|
||||||
|
|
||||||
|
$dirName = $month + '_' + $number
|
||||||
|
$file = $dirName + ' [x].clip'
|
||||||
|
mkdir $dirName
|
||||||
|
Copy-Item "$template" "$directory\$dirName\$file"
|
||||||
|
Set-Location $directory\$dirName\
|
||||||
|
Invoke-Item .
|
||||||
|
& ./$file
|
||||||
|
}
|
||||||
|
|
||||||
|
function New-Commission{
|
||||||
|
$directory = "$baseDir\Commissions\"
|
||||||
|
Set-Location $directory
|
||||||
|
|
||||||
|
Write-Color 'Who is the commissioner?' -Color Yellow
|
||||||
|
$user = Read-Host
|
||||||
|
Write-Color 'Add number ', '(type 0x)' -Color Yellow, White
|
||||||
|
$number = Read-Host
|
||||||
|
if(!(Test-Path $user)){
|
||||||
|
mkdir $user
|
||||||
|
}
|
||||||
|
$file = '[com] ' + $user + '_' + $number + ' [x].clip'
|
||||||
|
Copy-Item $template "$user\$file."
|
||||||
|
Set-Location $directory\$user
|
||||||
|
Invoke-Item .
|
||||||
|
& ./$file
|
||||||
|
}
|
||||||
|
|
||||||
|
function New-Personal{
|
||||||
|
Set-Location $baseDir
|
||||||
|
Write-Color 'Type filename:' -Color Yellow
|
||||||
|
$file = Read-Host
|
||||||
|
Copy-Item "$template" ./$file.clip
|
||||||
|
Invoke-Item .
|
||||||
|
& ./$file.clip
|
||||||
|
}
|
||||||
|
|
||||||
|
function New-Paste{
|
||||||
|
Clear-Host
|
||||||
|
Write-Color '1) ', 'Suggestion' -Color White, Magenta
|
||||||
|
Write-Color '2) ', 'Poll (Pin-up)' -Color White, Magenta
|
||||||
|
Write-Color '3) ', 'Poll (Illustration)' -Color White, Magenta
|
||||||
|
Write-Color '4) ', 'Pin-up' -Color White, Magenta
|
||||||
|
Write-Color '5) ', 'Illustration' -Color White, Magenta
|
||||||
|
Write-Separator
|
||||||
|
$option2 = Read-Host
|
||||||
|
Write-Separator
|
||||||
|
switch ($option2) {
|
||||||
|
'1'{
|
||||||
|
$clip = $month + ' Suggestion time!'
|
||||||
|
$clip
|
||||||
|
$clip | clip
|
||||||
|
}
|
||||||
|
'2'{
|
||||||
|
$clip = $month + ' Pin-Up poll!'
|
||||||
|
$clip
|
||||||
|
$clip | clip
|
||||||
|
}
|
||||||
|
'3'{
|
||||||
|
$clip = $month + ' Illustration poll!'
|
||||||
|
$clip
|
||||||
|
$clip | clip
|
||||||
|
}
|
||||||
|
'4'{
|
||||||
|
$clip = $month + ' Pin-up #X (WIP X)'
|
||||||
|
$clip
|
||||||
|
$clip | clip
|
||||||
|
}
|
||||||
|
'5'{
|
||||||
|
$clip = $month + ' Illustration #X (WIP X)'
|
||||||
|
$clip
|
||||||
|
$clip | clip
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Anonymator{
|
||||||
|
$nameConflict = @(
|
||||||
|
'Ronny'
|
||||||
|
'Tetractys'
|
||||||
|
'tonio4316'
|
||||||
|
)
|
||||||
|
$nameFix = @(
|
||||||
|
'Anony'
|
||||||
|
'Anonctys'
|
||||||
|
'Anon4316'
|
||||||
|
)
|
||||||
|
#Rename directories
|
||||||
|
for ($i = 0; $i -lt $nameConflict.Count; $i++){
|
||||||
|
$nameFilter = '*' + $nameConflict[$i] + '*'
|
||||||
|
foreach ($conflictName in Get-ChildItem -Recurse -Directory -Filter $nameFilter){
|
||||||
|
$newDir = $conflictName.Name.Replace($nameConflict[$i], $nameFix[$i])
|
||||||
|
if(Test-Path ($newDir)){
|
||||||
|
foreach ($file in Get-ChildItem -Path $conflictName){Move-Item $file -Destination $newDir}
|
||||||
|
}
|
||||||
|
elseif(!(Test-Path ($newDir))){
|
||||||
|
Write-Separator
|
||||||
|
Write-Color 'Will rename the directory ', $conflictName.Name, ' into ', $newDir -Color White, Red, White, Green
|
||||||
|
Rename-Item $conflictName -NewName $newDir
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach ($conflictName in Get-ChildItem $nameFilter -File -Recurse){
|
||||||
|
Write-Color $conflictName.Name, " will be renamed into ", $conflictName.Name.Replace($nameConflict[$i], $nameFix[$i]) -Color Red, White, Green
|
||||||
|
Rename-Item $conflictName.FullName -NewName $conflictName.Name.Replace($nameConflict[$i], $nameFix[$i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Color '1) ', 'Patreon' -Color White, Magenta
|
||||||
|
Write-Color '2) ', 'Commission' -Color White, Magenta
|
||||||
|
Write-Color '3) ', 'Personal' -Color White, Magenta
|
||||||
|
Write-Color '4) ', 'Patreon title' -Color White, Magenta
|
||||||
|
Write-Color '5) ', 'Anonymator' -Color White, Magenta
|
||||||
|
Write-Separator
|
||||||
|
$option = Read-Host
|
||||||
|
Write-Separator
|
||||||
|
|
||||||
|
Switch ($option){
|
||||||
|
"1" {New-Patreon}
|
||||||
|
"2" {New-Commission}
|
||||||
|
"3" {New-Personal}
|
||||||
|
"4" {New-Paste}
|
||||||
|
"5" {Anonymator}
|
||||||
|
}
|
||||||
95
deprecated-rewrite/Windows/library scripts/download.ps1
Normal file
95
deprecated-rewrite/Windows/library scripts/download.ps1
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
$downloadDirectory = 'D:\Downloads\'
|
||||||
|
Set-Location $downloadDirectory
|
||||||
|
|
||||||
|
|
||||||
|
switch -Regex ($args[0]){
|
||||||
|
<#'music.'{
|
||||||
|
$YTcommand = "youtube-dl --no-playlist --newline -x --audio-format best --add-metadata --audio-quality 0 $args[0]""
|
||||||
|
}#>
|
||||||
|
'youtu'{$YTcommand = "youtube-dl -o ""$downloadDirectory\%(title)s.%(ext)s"" $args[0]"}
|
||||||
|
'twitter'{$YTcommand = "youtube-dl -o ""$downloadDirectory\%(id)s.%(ext)s"" $args[0]"}
|
||||||
|
'chaturbate'{
|
||||||
|
for ($i=1;$i -le 40;$i++){
|
||||||
|
$waitTimer = 30
|
||||||
|
$chaturbate = "youtube-dl -o ""$downloadDirectory\%(title)s.%(ext)s"" $args[0]"
|
||||||
|
Invoke-Expression $chaturbate
|
||||||
|
$timeMultiply = $waitTimer * $i
|
||||||
|
$ts = [timespan]::FromSeconds($timeMultiply)
|
||||||
|
Start-Sleep -Seconds $waitTimer
|
||||||
|
Write-Host 'Waited for' $ts
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'series'{
|
||||||
|
$channels = @(
|
||||||
|
'https://www.youtube.com/user/Worthikids'
|
||||||
|
'https://www.youtube.com/user/CrazyBorisProduction'
|
||||||
|
'https://www.youtube.com/c/JelloApocalypse/videos'
|
||||||
|
'https://www.youtube.com/c/BRFootball/videos'
|
||||||
|
)
|
||||||
|
$regexs = @(
|
||||||
|
'(?i)^bigtop burger'
|
||||||
|
'(?i)^dungeon dynamite'
|
||||||
|
'(?i)^epithet erased'
|
||||||
|
'(?i)^the champions(?! League)'
|
||||||
|
)
|
||||||
|
$locations = @(
|
||||||
|
'D:\OneDrive\Videos\Series\Bigtop Burger'
|
||||||
|
'D:\OneDrive\Videos\Series\Dungeon Dynamite'
|
||||||
|
'D:\OneDrive\Videos\Series\Epithet Erased'
|
||||||
|
'D:\OneDrive\Videos\Series\The Champions'
|
||||||
|
)
|
||||||
|
|
||||||
|
for ($i = 0; $i -lt $channels.Count; $i++){
|
||||||
|
$channel = $channels[$i]
|
||||||
|
$location = $locations[$i]
|
||||||
|
$regex = $regexs[$i]
|
||||||
|
|
||||||
|
$channelSeries = "youtube-dl --match-title ""$regex"" -i --ignore-config --add-metadata --embed-subs --all-subs --convert-subs srt --merge-output-format mkv -o ""$location\%(title)s.%(ext)s"" ""$channel"""
|
||||||
|
Invoke-Expression $channelSeries
|
||||||
|
}
|
||||||
|
|
||||||
|
$Channels = @(
|
||||||
|
'https://www.youtube.com/channel/UC1DTYW241WD64ah5BFWn4JA/videos'
|
||||||
|
'https://www.youtube.com/c/ContraPoints/videos'
|
||||||
|
)
|
||||||
|
$locations = @(
|
||||||
|
"D:\OneDrive\Videos\Series\Sam O'Nella"
|
||||||
|
"D:\OneDrive\Videos\Series\ContraPoints"
|
||||||
|
)
|
||||||
|
#Channels Hd
|
||||||
|
for ($i = 0; $i -lt $channels.Count; $i++){
|
||||||
|
$channel = $channels[$i]
|
||||||
|
$location = $locations[$i]
|
||||||
|
$regex = $regexs[$i]
|
||||||
|
|
||||||
|
$channelSeries = "youtube-dl -i --ignore-config --add-metadata --embed-subs --all-subs --convert-subs srt --merge-output-format mkv -o ""$location\%(title)s.%(ext)s"" ""$channel"""
|
||||||
|
Invoke-Expression $channelSeries
|
||||||
|
}
|
||||||
|
|
||||||
|
#Rhys
|
||||||
|
$playlists = @(
|
||||||
|
'https://youtu.be/BhMIUJ-OeaQ?list=PLzxc0OSXCoWxzE6IvnzCcOqlI0puY0513'
|
||||||
|
'https://youtu.be/ilYzQJ-geCc?list=PLzxc0OSXCoWxhI9_F5ZHgsC2MZ9uyZK8V'
|
||||||
|
'https://youtu.be/b5S7WPRbVDk?list=PLzxc0OSXCoWwItlpwhY7TOR8RWu8wyQHC'
|
||||||
|
)
|
||||||
|
foreach ($playlist in $playlists){
|
||||||
|
$location = 'D:\OneDrive\Videos\Series\Rhys'
|
||||||
|
$urlCommand = "youtube-dl -i --ignore-config --add-metadata --recode-video mp4 -o ""$location\%(playlist)s\%(title)s.%(ext)s"" ""$playlist"""
|
||||||
|
Invoke-Expression $urlCommand
|
||||||
|
}
|
||||||
|
|
||||||
|
#CGkid
|
||||||
|
$channel = 'https://www.youtube.com/c/CgKid/videos'
|
||||||
|
$location = 'D:\OneDrive\Videos\Series\CGKid'
|
||||||
|
$urlCommand = "youtube-dl -f ""best[height<480]"" -i --ignore-config --add-metadata --recode-video mp4 -o ""$location\%(title)s.%(ext)s"" ""$channel"""
|
||||||
|
Invoke-Expression $urlCommand
|
||||||
|
}
|
||||||
|
Default {
|
||||||
|
$linkCom = "youtube-dl -o ""$downloadDirectory\%(title)s.%(ext)s"" $args[0]"
|
||||||
|
Invoke-Expression $linkCom
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($YTcommand){
|
||||||
|
Invoke-Expression $YTcommand
|
||||||
|
}
|
||||||
1017
deprecated-rewrite/Windows/library scripts/fix.ps1
Normal file
1017
deprecated-rewrite/Windows/library scripts/fix.ps1
Normal file
File diff suppressed because it is too large
Load Diff
145
deprecated-rewrite/Windows/library scripts/fix2.ps1
Normal file
145
deprecated-rewrite/Windows/library scripts/fix2.ps1
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
Import-Module PSWriteColor
|
||||||
|
|
||||||
|
#Set-Location 'F:\Library\Graphic Novels' #Resets location to root
|
||||||
|
#Set-Location 'E:\Comic'
|
||||||
|
#$txtDelete = 'F:\Library\Delete.txt'
|
||||||
|
|
||||||
|
function removeEmptyDirectory{
|
||||||
|
remove-emtpy.ps1 -Path .\ -Remove -VerifyNoEmpty
|
||||||
|
}
|
||||||
|
|
||||||
|
function renamePages{
|
||||||
|
# Parameter help description
|
||||||
|
param (
|
||||||
|
[string]$dirLocation,
|
||||||
|
[int]$issuePart
|
||||||
|
)
|
||||||
|
|
||||||
|
Set-Location $dirLocation #Set location to the issue directory
|
||||||
|
$files = Get-ChildItem * -Include '*.jpg', '*.png', '*.jpeg', '*.gif'
|
||||||
|
|
||||||
|
for($i = 1; $i -le $files.Count; $i++){ #creates a serialized array of the new file names
|
||||||
|
$newName = ([string]$issuePart).PadLeft(4,'0') + ([string]$i).PadLeft(4,'0') + $files[$i-1].Extension
|
||||||
|
#$newName
|
||||||
|
Rename-Item $files[$i-1] -NewName $newName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function unzipCBZ{
|
||||||
|
param (
|
||||||
|
$cbzFiles
|
||||||
|
)
|
||||||
|
|
||||||
|
$removeEmptyDirectoryDef = $Function:removeEmptyDirectory.ToString()
|
||||||
|
$renamePagesDef = $Function:renamePages.ToString()
|
||||||
|
|
||||||
|
$cbzFiles | ForEach-Object -parallel { #Creates a list of CBZ files on all the subdirectories and runs for each one
|
||||||
|
#define functions inside the thrad
|
||||||
|
$Function:removeEmptyDirectory = $using:removeEmptyDirectoryDef
|
||||||
|
$Function:renamePages = $using:renamePagesDef
|
||||||
|
|
||||||
|
Set-Location $_.DirectoryName #Changes location to a children directory to avoid uncompressing into the wrong folders
|
||||||
|
7z x $_ -o* > $txtDelete
|
||||||
|
Remove-Item $_.FullName #Removes the CBZ file after extracted
|
||||||
|
Set-Location $_.BaseName #Set the location to the uncompressed directory
|
||||||
|
$issueDirectoryLocation = Get-Location #store the issue location for later use
|
||||||
|
|
||||||
|
#Remove emtpy directories and creates a check variable
|
||||||
|
removeEmptyDirectory
|
||||||
|
$dirDirectories = Get-ChildItem -Directory
|
||||||
|
|
||||||
|
#If statements to check and rename files according to how many directories they contain
|
||||||
|
if (($dirDirectories).Count -gt 0){
|
||||||
|
for ($i = 0; $i -le ($dirDirectories).Count; $i++){ #system to rename every file according with an increment of which "part" directory of the TPB they belong to
|
||||||
|
renamePages $dirDirectories[$i] $i
|
||||||
|
}
|
||||||
|
Set-Location $issueDirectoryLocation
|
||||||
|
Get-ChildItem -Recurse -File -Exclude 'ComicInfo.xml' | Move-Item -Destination $issueDirectoryLocation #move files to the root
|
||||||
|
removeEmptyDirectory
|
||||||
|
if ((Get-ChildItem -Directory).Count -gt 0){
|
||||||
|
Get-ChildItem -Recurse -File 'ComicInfo.xml' | Remove-Item
|
||||||
|
Set-Location $issueDirectoryLocation
|
||||||
|
removeEmptyDirectory
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif (($dirDirectories).Count -eq 0){
|
||||||
|
$dirLocation = Get-Location
|
||||||
|
renamePages $dirLocation 0
|
||||||
|
}
|
||||||
|
} -ThrottleLimit 15
|
||||||
|
}
|
||||||
|
|
||||||
|
function convertFiles{
|
||||||
|
Get-ChildItem -Recurse *.jpg | ForEach-Object -parallel { #convert PNG
|
||||||
|
Set-Location $_.Directory
|
||||||
|
$fileName = $_.BaseName
|
||||||
|
magick convert -quality 100 $_ "$fileName.png"
|
||||||
|
Remove-Item $_
|
||||||
|
}
|
||||||
|
Get-ChildItem -Recurse *.png | ForEach-Object -parallel { #convert JPG
|
||||||
|
Set-Location $_.Directory
|
||||||
|
$fileName = $_.BaseName
|
||||||
|
magick convert -quality 100 $_ "$fileName.jpg"
|
||||||
|
Remove-Item $_
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function partDirs{
|
||||||
|
param (
|
||||||
|
$workingDir
|
||||||
|
)
|
||||||
|
$dirParts = Get-ChildItem -Directory -Recurse | Where-Object {$_.Name -match 'Part'}
|
||||||
|
foreach ($dirPart in $dirParts){
|
||||||
|
Set-Location $dirPart.Parent
|
||||||
|
$TPBname = $dirPart.Name.Split(' (')
|
||||||
|
if(!(Test-Path $TPBname[0])){
|
||||||
|
New-Item -ItemType Directory $TPBname[0]
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$nameFixed = $TPBname[0] + ' '
|
||||||
|
$nameFixed
|
||||||
|
$dirMove = Get-ChildItem -Directory -Exclude $TPBname[0] | Where-Object {$_.Name -match $nameFixed}
|
||||||
|
if ($dirMove){
|
||||||
|
$dirMove
|
||||||
|
$TPBname[0]
|
||||||
|
Move-Item $dirMove -Destination $TPBname[0]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Set-Location $workingDir ################FIX THIS############
|
||||||
|
#########################
|
||||||
|
############
|
||||||
|
foreach ($dir in Get-ChildItem -Recurse -Directory){
|
||||||
|
if(test-path($dir)){Set-Location $dir}
|
||||||
|
|
||||||
|
$issueDirectoryLocation = Get-Location
|
||||||
|
if(Get-ChildItem -Directory | Where-Object {$_.Name -match 'Part'}){
|
||||||
|
$dirRename = Get-ChildItem -Directory
|
||||||
|
for ($i = 0; $i -le ($dirRename).Count; $i++){ #system to rename every file according with an increment of which "part" directory of the TPB they belong to
|
||||||
|
renamePages $dirRename[$i] $i
|
||||||
|
}
|
||||||
|
Set-Location $issueDirectoryLocation
|
||||||
|
Get-ChildItem -Recurse -File -Exclude 'ComicInfo.xml' | Move-Item -Destination $issueDirectoryLocation #move files to the root
|
||||||
|
removeEmptyDirectory
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
switch ($args[0]) {
|
||||||
|
'1'{
|
||||||
|
$cbzFiles = Get-ChildItem *.cbz -Recurse -File
|
||||||
|
unzipCBZ $cbzFiles
|
||||||
|
}
|
||||||
|
'2'{
|
||||||
|
convertFiles
|
||||||
|
}
|
||||||
|
'3'{
|
||||||
|
Set-Location $args[1]
|
||||||
|
partDirs $args[1]
|
||||||
|
}
|
||||||
|
'4'{
|
||||||
|
Set-Location 'F:\Library\Comic'
|
||||||
|
foreach ($dir in Get-ChildItem -Recurse -Directory){
|
||||||
|
renamePages $dir 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
338
deprecated-rewrite/Windows/library scripts/manga.ps1
Normal file
338
deprecated-rewrite/Windows/library scripts/manga.ps1
Normal file
@ -0,0 +1,338 @@
|
|||||||
|
D:\OneDrive\Programs\bin\task.ps1
|
||||||
|
Clear-Host
|
||||||
|
|
||||||
|
#Variables
|
||||||
|
switch ($env:COMPUTERNAME){
|
||||||
|
"WORKSTATION"
|
||||||
|
{
|
||||||
|
$Env:dirDownload = 'F:\Library'
|
||||||
|
$Env:dirJson = 'F:\Library\gallery-dl'
|
||||||
|
}
|
||||||
|
"SURFACE"
|
||||||
|
{
|
||||||
|
$Env:dirDownload = 'C:\Users\JawZ\Downloads'
|
||||||
|
$Env:dirJson = '\\WORKSTATION\Library\gallery-dl'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$Env:database = "$Env:dirJson\manga.sqlite3"
|
||||||
|
$mAll= "$Env:dirJson\manga.json"
|
||||||
|
$mVol = "$Env:dirJson\manga-i(vol).json"
|
||||||
|
$list = "$Env:dirJson\manga.txt"
|
||||||
|
$downloadList_1 = "$Env:dirJson\download_1.txt"
|
||||||
|
$downloadList_2 = "$Env:dirJson\download_2.txt"
|
||||||
|
$downloadList_3 = "$Env:dirJson\download_3.txt"
|
||||||
|
$downloadList_4 = "$Env:dirJson\download_4.txt"
|
||||||
|
$downloadList_5 = "$Env:dirJson\download_5.txt"
|
||||||
|
$textInfo = (Get-Culture).TextInfo
|
||||||
|
|
||||||
|
function removeEmptyDirectory{
|
||||||
|
remove-emtpy.ps1 -Path .\ -Remove -VerifyNoEmpty
|
||||||
|
}
|
||||||
|
|
||||||
|
function Write-Separator{Write-Color '---' -Color DarkGray}
|
||||||
|
|
||||||
|
function email ($body){
|
||||||
|
$EmailFrom = "jawzoned@gmail.com"
|
||||||
|
$EmailTo = "captainjawz@outlook.com"
|
||||||
|
$Subject = "New files on the library! "
|
||||||
|
$SMTPServer = "smtp.gmail.com"
|
||||||
|
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
|
||||||
|
$SMTPClient.EnableSsl = $true
|
||||||
|
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("jawzoned", "od3g4t!T&yJq");
|
||||||
|
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, "$Body")
|
||||||
|
}
|
||||||
|
function automaticManga{#Download manga automatically
|
||||||
|
foreach ($webtoon in [System.IO.File]::ReadLines("$list")){
|
||||||
|
if ($webtoon | Select-String -Pattern 'webtoon'){
|
||||||
|
gallery-dl --sleep 5 --download-archive $Env:database -c "$mAll" --chapter-range '1' "$webtoon"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach ($manga in [System.IO.File]::ReadLines("$list")){
|
||||||
|
if ($manga | Select-String -Pattern 'manga'){
|
||||||
|
gallery-dl --sleep 5 --download-archive $Env:database -c "$mAll" --chapter-range '1-5' "$manga"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Set-Location $Env:dirDownload\New
|
||||||
|
removeEmptyDirectory
|
||||||
|
$newDirectories = Get-ChildItem -Path "$Env:dirDownload\New" -Directory -Recurse
|
||||||
|
if ($newDirectories){
|
||||||
|
$body = $newDirectories.Name | Out-String
|
||||||
|
email $body
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function mangaRange($range){#Download manga automatically
|
||||||
|
$counter = -1
|
||||||
|
Write-Separator
|
||||||
|
foreach ($line in [System.IO.File]::ReadLines($list)){
|
||||||
|
$counter++
|
||||||
|
if ($line | Select-String -Pattern 'manga'){
|
||||||
|
$lineName = $line.Substring(($line.LastIndexOf('/')+1)).Replace("-", " ").Replace("_", " ") #Fix the name so it is presentable
|
||||||
|
$lineName = $textInfo.ToTitleCase($lineName)
|
||||||
|
Write-Color "$counter) ", "$lineName" -Color White, Yellow
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Write-Separator
|
||||||
|
Write-Color 'Make a choice:' -C White
|
||||||
|
Write-Separator
|
||||||
|
$selection = Read-Host
|
||||||
|
Clear-Host
|
||||||
|
#[string]$range = "'" + $range + "'"
|
||||||
|
$line = [System.IO.File]::ReadLines($list) | Select-Object -Index $selection
|
||||||
|
gallery-dl --download-archive $Env:database -c $mAll --chapter-range $range $line
|
||||||
|
Set-Location $Env:dirDownload\New
|
||||||
|
removeEmptyDirectory
|
||||||
|
}
|
||||||
|
|
||||||
|
$DO = $args[0]
|
||||||
|
if($DO){
|
||||||
|
Switch($DO){
|
||||||
|
'a'{automaticManga}
|
||||||
|
'edit'{
|
||||||
|
Write-Color '1) ', 'Edit manga list' -C White, Yellow
|
||||||
|
Write-Color '2) ', 'Edit download list 1' -C White, Yellow
|
||||||
|
Write-Color '3) ', 'Edit download list 2' -C White, Yellow
|
||||||
|
Write-Color '4) ', 'Edit download list 3' -C White, Yellow
|
||||||
|
Write-Color '5) ', 'Edit download list 4' -C White, Yellow
|
||||||
|
Write-Color '6) ', 'Edit download list 5' -C White, Yellow
|
||||||
|
Write-Separator
|
||||||
|
$selectOperation = Read-Host
|
||||||
|
switch($selectOperation){
|
||||||
|
'1'{Invoke-Item $list}
|
||||||
|
'2'{Invoke-Item $downloadList_1}
|
||||||
|
'3'{Invoke-Item $downloadList_2}
|
||||||
|
'4'{Invoke-Item $downloadList_3}
|
||||||
|
'5'{Invoke-Item $downloadList_4}
|
||||||
|
'6'{Invoke-Item $downloadList_5}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
#Menu
|
||||||
|
Write-Color '1) ', 'Update Manga custom range' -C White, Yellow
|
||||||
|
Write-Color '2) ', 'Update comic from list' -C White, Yellow
|
||||||
|
Write-Color '3) ', 'Update everything' -C White, Yellow
|
||||||
|
Write-Color '4) ', 'Download individual comic/manga' -C White, Yellow
|
||||||
|
Write-Color '5) ', 'Download individual comic/manga per Volume' -C White, Yellow
|
||||||
|
Write-Color '6) ', 'Download batch' -C White, Yellow
|
||||||
|
Write-Color '7) ', 'Sort list file'-C White, Yellow
|
||||||
|
Write-Separator
|
||||||
|
#Actions
|
||||||
|
if ((Test-Path $Env:database) -and (Test-Path $mAll) -and (Test-Path $mVol) -and (Test-Path $list) -and (Test-Path $Env:dirDownload)){
|
||||||
|
|
||||||
|
$selectOperation = Read-Host
|
||||||
|
Write-Separator
|
||||||
|
switch ($selectOperation){
|
||||||
|
'1' {
|
||||||
|
Write-Color 'Insert a custom range ', '(ex 1-10)' -C Gray, DarkGray
|
||||||
|
Write-Separator
|
||||||
|
$range = Read-Host
|
||||||
|
mangaRange $range
|
||||||
|
}
|
||||||
|
'2' { #Update comic
|
||||||
|
$userInput = ''
|
||||||
|
Do {
|
||||||
|
Clear-Host
|
||||||
|
$counter = -1
|
||||||
|
foreach ($line in [System.IO.File]::ReadLines($list)) { #Print each lines from the list containing Comic pattern
|
||||||
|
$counter++
|
||||||
|
if ($line | Select-String -Pattern 'readcomiconline') {
|
||||||
|
$lineName = $line.Substring(($line.LastIndexOf('/')+1)).Replace("-", " ").Replace("_", " ") #Fix the name so it is presentable
|
||||||
|
$lineName = $textInfo.ToTitleCase($lineName)
|
||||||
|
Write-Color "$counter) ", "$lineName" -Color White, Yellow
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Write-Separator
|
||||||
|
Write-Color 'Make a selection:' -C White
|
||||||
|
Write-Separator
|
||||||
|
$selection = Read-Host
|
||||||
|
Clear-Host
|
||||||
|
$line = [System.IO.File]::ReadLines($list) | Select-Object -Index $selection
|
||||||
|
$lineName = $line.Substring(($line.LastIndexOf('/')+1)).Replace("_", " ").Replace("-"," ") #Fix name so it is presentable
|
||||||
|
$lineName = $textInfo.ToTitleCase($lineName)
|
||||||
|
Write-Color 'Your selection is: ', $lineName -C White, Yellow
|
||||||
|
Write-Separator
|
||||||
|
Write-Color 'Is your choice correct?', '(y/n)' -C White, DarkGray
|
||||||
|
Write-Separator
|
||||||
|
$userInput = Read-Host #Ask user if selection is correct
|
||||||
|
} while (($userInput -eq '') -or ($userInput -eq 'n')) #if selection is incorrect reprint the list
|
||||||
|
Clear-Host
|
||||||
|
gallery-dl --download-archive $Env:database -c $mAll --chapter-range '1' "$line"
|
||||||
|
}
|
||||||
|
'3'{
|
||||||
|
Clear-Host
|
||||||
|
gallery-dl --download-archive $Env:database -c "$mAll" -i "$list"
|
||||||
|
}
|
||||||
|
'4'{
|
||||||
|
Clear-Host
|
||||||
|
Write-Separator
|
||||||
|
Write-Color 'Enter link' -C White
|
||||||
|
Write-Separator
|
||||||
|
$link = Read-Host
|
||||||
|
Write-Separator
|
||||||
|
Write-Color 'Do you want to use the Database?', '(y/n)' -C White, DarkGray
|
||||||
|
Write-Separator
|
||||||
|
$useDB = Read-Host
|
||||||
|
Write-Separator
|
||||||
|
Clear-Host
|
||||||
|
if ($useDB -eq 'y'){
|
||||||
|
gallery-dl --download-archive $Env:database -c "$mAll" "$link"
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
gallery-dl -c "$mAll" "$link"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
'5'{
|
||||||
|
Clear-Host
|
||||||
|
Write-Color 'Enter link:' -C White
|
||||||
|
Write-Separator
|
||||||
|
$link = Read-Host
|
||||||
|
Write-Separator
|
||||||
|
Clear-Host
|
||||||
|
gallery-dl --download-archive $Env:database -c "$mVol" "$link"
|
||||||
|
}
|
||||||
|
'6'{
|
||||||
|
#$date = get-date -Format '(ddMMyyy_hhmm)'
|
||||||
|
#$log = "$Env:dirJson\logs\log $date.txt"
|
||||||
|
Clear-Host
|
||||||
|
Write-Color 'Which list do you want to use?' -C White
|
||||||
|
Write-Separator
|
||||||
|
$listNumber = Read-Host
|
||||||
|
switch ($listNumber) {
|
||||||
|
'1'{gallery-dl --sleep 0 -c "$mAll" -i "$downloadList_1"}
|
||||||
|
'2'{gallery-dl --sleep 0 -c "$mAll" -i "$downloadList_2"}
|
||||||
|
'3'{gallery-dl --sleep 0 -c "$mAll" -i "$downloadList_3"}
|
||||||
|
'4'{gallery-dl --sleep 0 -c "$mAll" -i "$downloadList_4"}
|
||||||
|
'5'{gallery-dl --sleep 2 --download-archive $Env:database -c "$mAll" -i "$downloadList_5"}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
'7'{
|
||||||
|
$finalContent = @()
|
||||||
|
$content = (Get-Content $list).ToLower() | Sort-Object | Select-Object -Unique
|
||||||
|
foreach ($line in $content){
|
||||||
|
[string]$line = $line
|
||||||
|
<#$line = $line.Replace('http:', 'https:')
|
||||||
|
if ($line -Match '\/$'){
|
||||||
|
$line = $line.TrimEnd('/')
|
||||||
|
}#>
|
||||||
|
$finalContent += $line
|
||||||
|
}
|
||||||
|
$finalContent -match '\S' > $list
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
Clear-Host
|
||||||
|
Write-Output 'ERROR: One of the configuration files is missing'
|
||||||
|
Write-Output "Database"
|
||||||
|
Test-Path $Env:database
|
||||||
|
Write-Output "manga.json"
|
||||||
|
Test-Path $mAll
|
||||||
|
Write-Output "manga-1(vol).json"
|
||||||
|
Test-Path $mVol
|
||||||
|
Write-Output "Manga list.txt"
|
||||||
|
Test-Path $list
|
||||||
|
Write-Output "Download directory"
|
||||||
|
Test-Path $Env:dirDownload
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function Capitalize{
|
||||||
|
#Set-Location 'F:\Library\New'
|
||||||
|
<#foreach ($directory in Get-ChildItem -Recurse -Directory){
|
||||||
|
Set-Location $directory
|
||||||
|
$capitalizeFiles = Get-ChildItem -File
|
||||||
|
ReNamer.exe /silent /rename Capitalize $capitalizeFiles
|
||||||
|
Wait-Process -Name "ReNamer"
|
||||||
|
}#>
|
||||||
|
Set-Location 'F:\Library\New'
|
||||||
|
foreach ($directory in Get-ChildItem -Directory -Recurse){
|
||||||
|
$directory.FullName
|
||||||
|
ReNamer.exe /silent /rename Capitalize $directory.FullName
|
||||||
|
Wait-Process -Name "ReNamer"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function moveSeries{
|
||||||
|
$serieLocationNames= @(
|
||||||
|
"Amory Wars"
|
||||||
|
"Batman"
|
||||||
|
"Borderlands"
|
||||||
|
"Brit"
|
||||||
|
"Clive Barker"
|
||||||
|
"Colder"
|
||||||
|
"Constantine"
|
||||||
|
"Critical Role"
|
||||||
|
"Dark Ark"
|
||||||
|
"Deadpool"
|
||||||
|
"Dicks"
|
||||||
|
"Ether"
|
||||||
|
"Fables"
|
||||||
|
"Grimm Fairy Tales"
|
||||||
|
"Guardians of the Galaxy"
|
||||||
|
"Gwenpool"
|
||||||
|
"Hack Slash"
|
||||||
|
"Harley Quinn"
|
||||||
|
"Hellboy"
|
||||||
|
"Hercules"
|
||||||
|
"Joker"
|
||||||
|
"Justice League"
|
||||||
|
"Kick-Ass"
|
||||||
|
"Lazarus"
|
||||||
|
"Lobo"
|
||||||
|
"Mad Max"
|
||||||
|
"Midnighter"
|
||||||
|
"Nailbiter"
|
||||||
|
"Pilot Season"
|
||||||
|
"Punisher"
|
||||||
|
"Rumble"
|
||||||
|
"Sonic"
|
||||||
|
"Star Wars"
|
||||||
|
"Suicide Squad"
|
||||||
|
"The Boys"
|
||||||
|
"The Last Zombie"
|
||||||
|
"The Realm"
|
||||||
|
"The Walking Dead"
|
||||||
|
"Thor"
|
||||||
|
"Transformers"
|
||||||
|
"Venom"
|
||||||
|
"Vikings"
|
||||||
|
"WWE"
|
||||||
|
"X-Men"
|
||||||
|
"Wolverine"
|
||||||
|
"Battle Angel Alita"
|
||||||
|
"Battle Through The Heavens"
|
||||||
|
"Boku No Hero Academia"
|
||||||
|
"Dr. Stone"
|
||||||
|
"Franken Fran"
|
||||||
|
"Kakegurui"
|
||||||
|
"Kami-Sama No Iutoori"
|
||||||
|
"Shaman King"
|
||||||
|
"Tensei Shitara Slime Datta Ken"
|
||||||
|
"Touhou"
|
||||||
|
)
|
||||||
|
|
||||||
|
foreach ($serieLocationName in $serieLocationNames){
|
||||||
|
$testPathComicLocation = 'F:\Library\New\Comic\' + $serieLocationName
|
||||||
|
$testPathMangaLocation = 'F:\Library\New\Manga\' + $serieLocationName
|
||||||
|
if(Test-Path $testPathComicLocation){
|
||||||
|
$files = Get-ChildItem -Path $testPathComicLocation
|
||||||
|
$newDir = $testPathComicLocation + '\' + $serieLocationName
|
||||||
|
if(!(Test-Path $newDir)){mkdir $newDir}
|
||||||
|
Move-Item $files $newDir
|
||||||
|
}
|
||||||
|
if(Test-Path $testPathMangaLocation){
|
||||||
|
$files = Get-ChildItem -Path $testPathMangaLocation
|
||||||
|
$newDir = $testPathMangaLocation + '\' + $serieLocationName
|
||||||
|
if(!(Test-Path $newDir)){mkdir $newDir}
|
||||||
|
Move-Item $files $newDir
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Clear-Host
|
||||||
|
Capitalize
|
||||||
|
moveSeries
|
||||||
134
deprecated-rewrite/Windows/remove-emtpy.ps1
Normal file
134
deprecated-rewrite/Windows/remove-emtpy.ps1
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Svendsen Tech's generic script for removing empty directories from a
|
||||||
|
directory tree structure.
|
||||||
|
|
||||||
|
Finds or removes/deletes empty directories recursively from the drive or
|
||||||
|
directory you specify.
|
||||||
|
|
||||||
|
You will need to use the -VerifyNoEmpty parameter or multiple
|
||||||
|
runs to get rid of nested empty directories. See the -VerifyNoEmpty parameter's
|
||||||
|
description for further details.
|
||||||
|
|
||||||
|
This isn't the most efficient approach as the ones I can think of seem to
|
||||||
|
increase the script's complexity considerably. It should be useful for a
|
||||||
|
multitude of use cases.
|
||||||
|
|
||||||
|
Author: Joakim Svendsen
|
||||||
|
|
||||||
|
.PARAMETER Path
|
||||||
|
Required. Base root path to iterate recursively.
|
||||||
|
.PARAMETER Find
|
||||||
|
Default behaviour where it just prints. Overrides -Remove if both are specified.
|
||||||
|
.PARAMETER Remove
|
||||||
|
Removes all empty dirs (as in actually deletes them with Remove-Item).
|
||||||
|
.PARAMETER VerifyNoEmpty
|
||||||
|
Makes the script run until no empty directories are found. This is in order
|
||||||
|
to handle nested empty directories, as in a directory that currently only
|
||||||
|
contains an empty directory would be empty after the first run/iteration and
|
||||||
|
need to be remove in a subsequent run. Specifying this parameter causes the
|
||||||
|
script to run until it's done a complete run without finding a single empty
|
||||||
|
directory. This might be time-consuming depending on the size of the directory
|
||||||
|
tree structure.
|
||||||
|
|
||||||
|
If there is an error while deleting a directory, it will not run again, to
|
||||||
|
avoid an infinite loop.
|
||||||
|
#>
|
||||||
|
|
||||||
|
param(
|
||||||
|
[Parameter(Mandatory=$true)][string] $Path,
|
||||||
|
[switch] $Find,
|
||||||
|
[switch] $Remove,
|
||||||
|
[switch] $VerifyNoEmpty
|
||||||
|
)
|
||||||
|
|
||||||
|
Set-StrictMode -Version 2.0
|
||||||
|
$ErrorLog = 'remove-empty-dirs-error.log'
|
||||||
|
|
||||||
|
######## START OF FUNCTIONS ########
|
||||||
|
|
||||||
|
function Iterate-And-Remove-Empty-Dirs {
|
||||||
|
|
||||||
|
$FoundEmpty = $false
|
||||||
|
|
||||||
|
#Write-Host "Iterating '$Path'"
|
||||||
|
|
||||||
|
Get-ChildItem -Force -Recurse -Path $Path | Where-Object { $_.PSIsContainer } | ForEach-Object {
|
||||||
|
|
||||||
|
if ($Find -or -not $Remove) {
|
||||||
|
|
||||||
|
if (-not (Get-ChildItem -Force $_.FullName)) {
|
||||||
|
|
||||||
|
# Directory should be empty
|
||||||
|
$_.FullName + ' is empty'
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# This is the dangerous part
|
||||||
|
elseif ($Remove) {
|
||||||
|
|
||||||
|
if (-not (Get-ChildItem -Force $_.FullName)) {
|
||||||
|
|
||||||
|
$FoundEmpty = $true
|
||||||
|
|
||||||
|
# Directory should be empty
|
||||||
|
Remove-Item -Force $_.FullName
|
||||||
|
|
||||||
|
if (-not $?) {
|
||||||
|
|
||||||
|
Write-Host -ForegroundColor Red "Error: $(Get-Date): Unable to delete $($_.FullName): $($Error[0].ToString))"
|
||||||
|
"Error: $(Get-Date): Unable to delete $($_.FullName): $($Error[0].ToString))" | Out-File -Append $ErrorLog
|
||||||
|
|
||||||
|
$FoundEmpty = $false # avoid infinite loop
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
|
||||||
|
Write-Host -ForegroundColor Green "$(Get-Date): Successfully deleted the empty folder: $($_.FullName)"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} # end of ForEach-Object
|
||||||
|
|
||||||
|
$FoundEmpty
|
||||||
|
|
||||||
|
} # end of function Iterate-And-Remove-Empty-Dirs
|
||||||
|
|
||||||
|
######## END OF FUNCTIONS ########
|
||||||
|
|
||||||
|
if (-not (Test-Path -Path $Path -PathType Container)) {
|
||||||
|
|
||||||
|
"The specified path does not exist. Exiting with code 1."
|
||||||
|
exit 1
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($Remove -and $VerifyNoEmpty) {
|
||||||
|
|
||||||
|
$Counter = 0
|
||||||
|
|
||||||
|
while (($OutsideFoundEmpty = Iterate-And-Remove-Empty-Dirs) -eq $true) {
|
||||||
|
|
||||||
|
$Counter++
|
||||||
|
#Write-Host -ForegroundColor Yellow "-VerifyNoEmpty specified. Found empty dirs on run no ${Counter}. Starting next run."
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$Counter++
|
||||||
|
|
||||||
|
#Write-Host "Made $Counter runs in total"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
|
|
||||||
|
Iterate-And-Remove-Empty-Dirs
|
||||||
|
|
||||||
|
}
|
||||||
61
deprecated-rewrite/backups
Normal file
61
deprecated-rewrite/backups
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
#!/usr/bin/env fish
|
||||||
|
|
||||||
|
set slocal ~/.local/share
|
||||||
|
set sconfig ~/.config
|
||||||
|
set sflat ~/.var/app
|
||||||
|
set dest ~/Torrents/Backups/mega
|
||||||
|
set dlocal $dest/local
|
||||||
|
set dconfig $dest/config
|
||||||
|
set dflat $dest/var
|
||||||
|
set -x fisher_path ~/.config/fish/fisher
|
||||||
|
set -x PNPM_HOME ~/.local/share/pnpm
|
||||||
|
set -x PATH $PNPM_HOME $PATH
|
||||||
|
set ssubs ~/Torrents/Data/Media
|
||||||
|
set dsubs ~/Torrents/Data/Subs
|
||||||
|
|
||||||
|
paru -Qettq >$dest/paru
|
||||||
|
flatpak list --all --columns=application >$dest/flatpak
|
||||||
|
pip list --user >$dest/pip
|
||||||
|
pipx list >$dest/pipx
|
||||||
|
fish -lc "fisher list >$dest/fisher"
|
||||||
|
pnpm list -g >$dest/pnpm
|
||||||
|
|
||||||
|
function bkup
|
||||||
|
echo "Creating a backup of" $argv[1] into $argv[2]
|
||||||
|
rsync --exclude "*.git" --inplace --delete -aurL $argv[1] $argv[2]
|
||||||
|
end
|
||||||
|
|
||||||
|
bkup ~/Development/Scripts/ $dest/scripts
|
||||||
|
bkup ~/Development/Docker/docker-compose.yml $dest
|
||||||
|
bkup ~/.ssh/ $dest/ssh
|
||||||
|
bkup ~/Torrents/Data/Backups/ $dest/servarr
|
||||||
|
bkup ~/.var/ $dest/var
|
||||||
|
|
||||||
|
### Deprecate
|
||||||
|
### pass
|
||||||
|
for dir in gnupg fonts gnome-recipes rhythmbox maps-places\.json \
|
||||||
|
gvfs-metadata
|
||||||
|
bkup $slocal/$dir $dlocal
|
||||||
|
end
|
||||||
|
|
||||||
|
### Deprecate
|
||||||
|
### backintime muso SmpDirs2 iriKali 'org.gabmus.gfeeds.json' 'chromium-flags.conf'
|
||||||
|
for dir in bat beets celluloid ComicTagger calibre desmume \
|
||||||
|
doom 'environment.d' gallery-dl jawz mpd fish git gopass htop \
|
||||||
|
lutris moc mpd mpv MusicBrainz ncmpcpp neofetch paru proselint \
|
||||||
|
systemd yuzu 'PureRef.ini' \
|
||||||
|
'syncplay.ini' 'topgrade.toml' wgetrc \
|
||||||
|
mpdscribble mpdasrc Trolltech.conf
|
||||||
|
bkup $sconfig/$dir $dconfig
|
||||||
|
end
|
||||||
|
|
||||||
|
for file in $ssubs/**/**.srt
|
||||||
|
set dest (string replace $ssubs $dsubs $file)
|
||||||
|
mkdir --parents (dirname $dest)
|
||||||
|
cp $file $dest
|
||||||
|
end
|
||||||
|
|
||||||
|
# busctl --user call org.gnome.Shell /io/elhan/ExtensionsSync io.elhan.ExtensionsSync save
|
||||||
|
|
||||||
|
# set -x GZIP -9
|
||||||
|
# doas tar cvfz /home/jawz/Torrents/Backups/docker.tar.gz /home/jawz/Development/Docker/
|
||||||
84
deprecated-rewrite/discord_chatlogs
Normal file
84
deprecated-rewrite/discord_chatlogs
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
#!/usr/bin/env fish
|
||||||
|
|
||||||
|
read -gP "Insert Token: " token
|
||||||
|
read -gP "Insert an after date: " dateInput
|
||||||
|
set afterDate (date "+%F %H:%M:%S" --date="$dateInput")
|
||||||
|
set beforeDate (date "+%F %H:%M:%S")
|
||||||
|
|
||||||
|
set guildIDs 828901086722785281 659186066724749312 \
|
||||||
|
618655243554521089 111912780377985024
|
||||||
|
set guildNames 'The fattest pussy club' CreativeCringeCorner \
|
||||||
|
'Bound Art With Lore and Less Minors' 'Webcomic Land'
|
||||||
|
set dmIDs 808310797004308500 539621978504560640 810121293818363934 816078347972116491
|
||||||
|
set dmNames Hurricane DeftBeck Tomayto Weenie
|
||||||
|
set baseDir $HOME/Temp/Discord
|
||||||
|
mkdir -p $baseDir
|
||||||
|
|
||||||
|
function guildsAll
|
||||||
|
for guildID in $guildIDs
|
||||||
|
discordchatexporter-cli exportguild --parallel 5 \
|
||||||
|
-t $token -g $guildID --before $beforeDate \
|
||||||
|
-p 10mb -o "$baseDir/$guildID - $beforeDate"/
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function guildsUpdate
|
||||||
|
for guildID in $guildIDs
|
||||||
|
discordchatexporter-cli exportguild --parallel 5 \
|
||||||
|
-t $token -g $guildID --after $afterDate --before $beforeDate \
|
||||||
|
-p 10mb -o "$baseDir/$guildID - $beforeDate"/
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function dmAll
|
||||||
|
for dmID in $dmIDs
|
||||||
|
discordchatexporter-cli export --parallel 5 \
|
||||||
|
-t $token -c $dmID --before $beforeDate \
|
||||||
|
-p 10mb -o "$baseDir/$dmID - $beforeDate"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function dmUpdate
|
||||||
|
#echo $afterDate
|
||||||
|
for dmID in $dmIDs
|
||||||
|
discordchatexporter-cli export --parallel 5 \
|
||||||
|
-t $token -c $dmID --after $afterDate --before $beforeDate \
|
||||||
|
-p 10mb -o "$baseDir/$dmID - $beforeDate"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function renameDirs
|
||||||
|
set i 1
|
||||||
|
set names $guildNames $dmNames
|
||||||
|
for ID in $guildIDs $dmIDs
|
||||||
|
set foundDir (find $baseDir -type d -name "$ID*")
|
||||||
|
mv $foundDir $baseDir/(string replace $ID $names[$i] (basename $foundDir))
|
||||||
|
set i (math $i + 1)
|
||||||
|
end
|
||||||
|
for dir in (find $baseDir -maxdepth 1 -type d -not -path $baseDir)
|
||||||
|
set fileName (basename $dir).tar.xz
|
||||||
|
cd $baseDir
|
||||||
|
set baseName (basename $dir)
|
||||||
|
tar cJvf $baseDir/$fileName $baseName/
|
||||||
|
trash-put $dir
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
switch $argv[1]
|
||||||
|
case -G
|
||||||
|
guildsAll
|
||||||
|
renameDirs
|
||||||
|
case -g
|
||||||
|
guildsUpdate
|
||||||
|
renameDirs
|
||||||
|
case -D
|
||||||
|
dmAll
|
||||||
|
renameDirs
|
||||||
|
case -d
|
||||||
|
dmUpdate
|
||||||
|
renameDirs
|
||||||
|
case -u
|
||||||
|
guildsUpdate
|
||||||
|
dmUpdate
|
||||||
|
renameDirs
|
||||||
|
end
|
||||||
49
deprecated-rewrite/doasedit
Normal file
49
deprecated-rewrite/doasedit
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
help() {
|
||||||
|
cat - >&2 <<EOF
|
||||||
|
doasedit - like sudoedit, but for doas
|
||||||
|
|
||||||
|
doasedit file...
|
||||||
|
|
||||||
|
Every argument will be treated as a file to edit. There's no support for
|
||||||
|
passing arguments to doas, so you can only doas root.
|
||||||
|
|
||||||
|
This script is SECURITY SENSITIVE! Special care has been taken to correctly
|
||||||
|
preserve file attributes. Please exercise CAUTION when modifying AND using
|
||||||
|
this script.
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
--help|-h) help; exit 0;;
|
||||||
|
*) ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
export TMPDIR=/dev/shm/
|
||||||
|
trap 'rm -f "$tmp" "$tmpcopy"' EXIT HUP QUIT TERM INT ABRT
|
||||||
|
|
||||||
|
for file; do
|
||||||
|
case "$file" in -*) file=./"$file" ;; esac
|
||||||
|
|
||||||
|
tmp="$(mktemp)"
|
||||||
|
if [ -f "$file" ] && [ ! -r "$file" ]; then
|
||||||
|
doas cat "$file" > "$tmp"
|
||||||
|
elif [ -r "$file" ]; then
|
||||||
|
cat "$file" > "$tmp"
|
||||||
|
fi
|
||||||
|
|
||||||
|
tmpcopy="$(mktemp)"
|
||||||
|
cat "$tmp" > "$tmpcopy"
|
||||||
|
|
||||||
|
${EDITOR:-vi} "$tmp"
|
||||||
|
|
||||||
|
if cmp -s "$tmp" "$tmpcopy"; then
|
||||||
|
echo 'File unchanged, exiting...'
|
||||||
|
else
|
||||||
|
doas dd if="$tmp" of="$file"
|
||||||
|
echo 'Done, changes written'
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm "$tmp" "$tmpcopy"
|
||||||
|
done
|
||||||
10
deprecated-rewrite/exporg_cal.fish
Normal file
10
deprecated-rewrite/exporg_cal.fish
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#!/usr/bin/env fish
|
||||||
|
function exporg_cal -d "Update gnome-calendar using emacs events"
|
||||||
|
set -l calendar_file ~/Documents/Calendar.ics
|
||||||
|
emacsclient -e "(org-icalendar-combine-agenda-files)"
|
||||||
|
string replace -a "DTSTART:" 'DTSTART;TZID=/freeassociation.sourceforge.net/America/Mexico_City:
|
||||||
|
' (cat $calendar_file) >$calendar_file
|
||||||
|
string replace -a "DTEND:" 'DTEND;TZID=/freeassociation.sourceforge.net/America/Mexico_City:
|
||||||
|
' (cat $calendar_file) >$calendar_file
|
||||||
|
kill (ps -efa | grep calendar | awk '{print $2}' | head -n 2)
|
||||||
|
end
|
||||||
12
deprecated-rewrite/kemono.py
Normal file
12
deprecated-rewrite/kemono.py
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
import re
|
||||||
|
|
||||||
|
path = Path('/home/jawz/Downloads/Jubilations/485935')
|
||||||
|
pattern = re.compile(r" (\(\d{1,2}\)(?=\.\w))")
|
||||||
|
for picture in path.iterdir():
|
||||||
|
if re.search(pattern, picture.name):
|
||||||
|
newname = (re.sub(pattern, "", picture.name))
|
||||||
|
if not (path / newname).exists():
|
||||||
|
(path / picture.name).rename(path / newname)
|
||||||
60
deprecated-rewrite/manage_music.fish
Normal file
60
deprecated-rewrite/manage_music.fish
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
#!/usr/bin/env fish
|
||||||
|
|
||||||
|
function manage_music
|
||||||
|
set root_directory ~/Music/
|
||||||
|
# set i 1
|
||||||
|
# find $root_directory -type f -name "cover.jpg" -delete
|
||||||
|
# for file in (find $root_directory -type f)
|
||||||
|
# mkdir $root_directory/$i
|
||||||
|
# mv $file $root_directory$i/
|
||||||
|
# set i (math $i + 1)
|
||||||
|
# end
|
||||||
|
# beet import -A $root_directory
|
||||||
|
# find $root_directory -type d -empty -delete
|
||||||
|
|
||||||
|
# for directory in (find $root_directory -type d -not \( -path /home/jawz/Music/.debris -prune \))
|
||||||
|
# set file_count (count (find $directory -maxdepth 1 -type f))
|
||||||
|
# if test $file_count -gt 0
|
||||||
|
# set file_head (find $directory -maxdepth 1 -type f | head -n 1)
|
||||||
|
# ffmpeg -i $file_head -y -loglevel 0 $directory/cover.jpg
|
||||||
|
# if test ! -e $directory/cover.jpg
|
||||||
|
# echo $directory "doesn't have a cover"
|
||||||
|
# end
|
||||||
|
# end
|
||||||
|
# end
|
||||||
|
|
||||||
|
# Fix covers
|
||||||
|
# for file in (find $root_directory -type f -name cover.jpg)
|
||||||
|
# set resolution (string match -r "\d+x\d+" (identify $file))
|
||||||
|
# set width (string split x $resolution)[1]
|
||||||
|
# set height (string split x $resolution)[2]
|
||||||
|
# set div (math $width / $height)
|
||||||
|
# # Scale up to square
|
||||||
|
# if test \( $width -ne $height \) \
|
||||||
|
# -a \( $div -ge 0.98 \) \
|
||||||
|
# -a \( $div -le 1.2 \)
|
||||||
|
# if test $width -gt $height
|
||||||
|
# set size "$width"x"$width"!
|
||||||
|
# else
|
||||||
|
# set size "$height"!x"$height"
|
||||||
|
# end
|
||||||
|
# echo "Will scale up" $file $resolution
|
||||||
|
# mogrify -resize $size $file
|
||||||
|
# end
|
||||||
|
# # Crop
|
||||||
|
# if test $width -ne $height
|
||||||
|
# if test $width -gt $height
|
||||||
|
# set size "$height"x"$height"+0+0
|
||||||
|
# else
|
||||||
|
# set size "$width"x"$width"+0+0
|
||||||
|
# end
|
||||||
|
# echo "Will crop " $file $resolution $size
|
||||||
|
# mogrify -gravity Center -crop $size $file
|
||||||
|
# end
|
||||||
|
# # Check if image is a square and bigger than 500x500
|
||||||
|
# if test \( $width -eq $height \) -a \( $width -gt 1000 \)
|
||||||
|
# echo "Will resize " $file $resolution
|
||||||
|
# mogrify -resize 1000 $file
|
||||||
|
# end
|
||||||
|
# end
|
||||||
|
end
|
||||||
127
deprecated-rewrite/moviezip
Normal file
127
deprecated-rewrite/moviezip
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
#!/usr/bin/env fish
|
||||||
|
|
||||||
|
set d_dest /torrents/Kim
|
||||||
|
set d_tmp /torrents/Data/tmp
|
||||||
|
set d_media /torrents/Data/Media
|
||||||
|
|
||||||
|
function rename_subtitle -a f f_dest
|
||||||
|
set -f f_base (basename "$f_dest" | string split -r -m1 .)[1]
|
||||||
|
set -f dots (math (string split "." (basename "$f") | count) -1 )
|
||||||
|
if test $dots -eq 1
|
||||||
|
set -f f_ext (basename "$f" | string split -r -m1 .)
|
||||||
|
echo $f_base.$f_ext[2]
|
||||||
|
else
|
||||||
|
set -f f_ext (basename "$f" | string split -r -m4 .)
|
||||||
|
echo $f_base.$f_ext[2].$f_ext[3]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function print_color -a message color
|
||||||
|
echo (set_color $color)"$message"(set_color normal)
|
||||||
|
end
|
||||||
|
|
||||||
|
function separator
|
||||||
|
echo
|
||||||
|
print_color _________ yellow
|
||||||
|
echo
|
||||||
|
end
|
||||||
|
|
||||||
|
function mv_file -a src dst
|
||||||
|
if test ! -e $dst
|
||||||
|
print_color Moving green
|
||||||
|
echo $src
|
||||||
|
print_color Into
|
||||||
|
echo $dst
|
||||||
|
separator
|
||||||
|
mv "$src" "$dst"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function zip_movie -a d_movie
|
||||||
|
set movie_orig_name (basename "$d_movie")
|
||||||
|
set movie_year (string match -r "\(\d{4}\)" $movie_orig_name)
|
||||||
|
set movie_name (string lower $movie_orig_name \
|
||||||
|
| string replace -a a 4 \
|
||||||
|
| string replace -a e 3 \
|
||||||
|
| string replace -a i 1 \
|
||||||
|
| string replace -a o 0\
|
||||||
|
| string trim)
|
||||||
|
|
||||||
|
print_color Processing green
|
||||||
|
echo $movie_orig_name
|
||||||
|
print_color "Encrypted name" green
|
||||||
|
echo $movie_name
|
||||||
|
separator
|
||||||
|
|
||||||
|
for f in (find "$d_movie" -maxdepth 1 -type f)
|
||||||
|
set episode (string match -r "S\d{2}E\d{2}" (basename "$f"))
|
||||||
|
set -l f_ext (basename $f | string split -r -m1 .)[2]
|
||||||
|
|
||||||
|
if test -n "$movie_year"
|
||||||
|
set f_dest $d_movie/$movie_name.$f_ext
|
||||||
|
|
||||||
|
else if test -n "$episode"
|
||||||
|
set episode (string match -r "S\d{2}E\d{2}" (basename "$f"))
|
||||||
|
set f_dest $d_movie/$movie_name $episode.$f_ext
|
||||||
|
|
||||||
|
else
|
||||||
|
set f_dest $d_movie/$movie_name.$f_ext
|
||||||
|
end
|
||||||
|
|
||||||
|
if test ! "$f_ext" = srt
|
||||||
|
mv_file "$f" "$f_dest"
|
||||||
|
|
||||||
|
else if test "$f_ext" = srt
|
||||||
|
set s_dest $d_movie/(rename_subtitle "$f" "$f_dest")
|
||||||
|
mv_file "$f" "$s_dest"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
set -f d_original (find "$d_media" -mindepth 2 -type d -name "$movie_orig_name")
|
||||||
|
set -f f_subtitles (find "$d_movie" -mindepth 1 -name \*.srt)
|
||||||
|
|
||||||
|
if test \( -z "$f_subtitles" \) -a \( -d "$d_original" \)
|
||||||
|
print_color "No subtittles found in the tmp directory..." red
|
||||||
|
print_color "searching in the original..." green
|
||||||
|
|
||||||
|
for f in (find "$d_original" -mindepth 1 -name \*.srt)
|
||||||
|
function cp_file -a src dst
|
||||||
|
print_color Found green
|
||||||
|
echo $src
|
||||||
|
print_color Copying green
|
||||||
|
echo $dst
|
||||||
|
cp "$src" "$dst"
|
||||||
|
separator
|
||||||
|
end
|
||||||
|
|
||||||
|
if test -n "$episode"
|
||||||
|
if test (string match "*$episode*" (basename "$f"))
|
||||||
|
set s_dest $d_movie/(rename_subtitle "$f" "$f_dest")
|
||||||
|
cp_file "$f" "$s_dest"
|
||||||
|
end
|
||||||
|
else
|
||||||
|
set s_dest $d_movie/(rename_subtitle "$f" "$f_dest")
|
||||||
|
cp_file "$f" "$s_dest"
|
||||||
|
end
|
||||||
|
separator
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
print_color "Compressing the files" green
|
||||||
|
echo $d_movie/*
|
||||||
|
print_color "Into the zip file" green
|
||||||
|
echo $d_dest/$movie_name.zip
|
||||||
|
|
||||||
|
7z a -ppredator6969 $d_dest/$movie_name.zip $d_movie/*
|
||||||
|
|
||||||
|
separator
|
||||||
|
# GHEKRE
|
||||||
|
# 7z a -t7z -m0=lzma2 -mx=9 -mfb=64 -md=32m -ms=on -mhe=on -ptits6969
|
||||||
|
end
|
||||||
|
|
||||||
|
if test -e $d_tmp
|
||||||
|
for d_movie in (find $d_tmp -mindepth 1 -type d)
|
||||||
|
zip_movie $d_movie
|
||||||
|
end
|
||||||
|
trash-put $d_tmp
|
||||||
|
end
|
||||||
17
deprecated-rewrite/pywal.fish
Normal file
17
deprecated-rewrite/pywal.fish
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env fish
|
||||||
|
function pywal
|
||||||
|
set -f wallpaper (string replace -r "file:\/\/" "" \
|
||||||
|
(gsettings get org.gnome.desktop.background picture-uri) \
|
||||||
|
| string replace -ra "\'" "")
|
||||||
|
switch $argv[1]
|
||||||
|
case light
|
||||||
|
echo "Setting up light theme"
|
||||||
|
# wal -lni $wallpaper --backend colorz -b FAFAFA
|
||||||
|
wal -lni $wallpaper -b FAFAFA
|
||||||
|
case dark
|
||||||
|
echo "Setting up dark theme"
|
||||||
|
# wal -ni $wallpaper --backend colorz
|
||||||
|
wal -ni $wallpaper
|
||||||
|
end
|
||||||
|
# systemctl restart --user emacs.service
|
||||||
|
end
|
||||||
17
deprecated-rewrite/rnm.fish
Normal file
17
deprecated-rewrite/rnm.fish
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#!/usr/bin/env fish
|
||||||
|
function rnm
|
||||||
|
for f in $argv
|
||||||
|
# xdg-open $f &
|
||||||
|
# wait
|
||||||
|
echo "Please input a new name for the file "(set_color green)(basename $f)(set_color normal)
|
||||||
|
read -f userinput
|
||||||
|
set f_new_name "["(basename $PWD)"] $userinput.mp4"
|
||||||
|
# mv $file $newname
|
||||||
|
echo $f $new_name
|
||||||
|
# done
|
||||||
|
# for f in *.mp4
|
||||||
|
# do
|
||||||
|
# ffmpreg $file
|
||||||
|
# done
|
||||||
|
end
|
||||||
|
end
|
||||||
103
deprecated-rewrite/syncphone
Normal file
103
deprecated-rewrite/syncphone
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
#!/bin/zsh
|
||||||
|
|
||||||
|
baseDir=~/Temp/Phone
|
||||||
|
mkdir -p ~/.cache/phone/{screenshots,photos}
|
||||||
|
mkdir -p $baseDir
|
||||||
|
|
||||||
|
is_mounted() {
|
||||||
|
mount | awk -v DIR="$1" '{if ($3 == DIR) { exit 0}} ENDFILE{exit -1}'
|
||||||
|
}
|
||||||
|
|
||||||
|
check_mount() {
|
||||||
|
if is_mounted $baseDir; then
|
||||||
|
echo "Phone is mounted :)"
|
||||||
|
else
|
||||||
|
echo "Mounting phone..."
|
||||||
|
sshfs -o port=2222 -oHostKeyAlgorithms=+ssh-rsa jawz@phone:/ $baseDir
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
sync_music() {
|
||||||
|
check_mount
|
||||||
|
echo "Syncing music..."
|
||||||
|
rsync --omit-dir-times --size-only --no-perms --recursive --progress \
|
||||||
|
--delete $HOME/Music/ $baseDir/Music
|
||||||
|
}
|
||||||
|
|
||||||
|
sync_art() {
|
||||||
|
check_mount
|
||||||
|
echo "Moving drawings..."
|
||||||
|
typeset -A remotes
|
||||||
|
remotes=(
|
||||||
|
"$HOME/Pictures/Art/My Art/2019/" "$baseDir/Pictures/Art/2019/"
|
||||||
|
"$HOME/Pictures/Art/My Art/2020/" "$baseDir/Pictures/Art/2020/"
|
||||||
|
"$HOME/Pictures/Art/My Art/2021/" "$baseDir/Pictures/Art/2021/"
|
||||||
|
"$HOME/Pictures/Art/4me/" "$baseDir/Pictures/Commissions/"
|
||||||
|
"$HOME/Pictures/Art/Artists/Friends/" "$baseDir/Pictures/Friends/"
|
||||||
|
)
|
||||||
|
for local remote in "${(@kv)remotes}"
|
||||||
|
do (
|
||||||
|
rsync --omit-dir-times --size-only --no-perms --recursive --progress --delete \
|
||||||
|
--exclude={'*.psd','*.clip','*.docx','*.pdf','*.pur','*.ttf','*.zip','*.xcf'} \
|
||||||
|
--exclude={'*/Assets','.nomedia','*.sai','*.mp4'} \
|
||||||
|
$local $remote
|
||||||
|
)
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
sync_photos() {
|
||||||
|
check_mount
|
||||||
|
echo "Moving photos..."
|
||||||
|
mv $baseDir/DCIM/Camera/* $HOME/.cache/phone/photos/
|
||||||
|
mv $HOME/.cache/phone/photos/* "$HOME/Pictures/Photos/Camera Roll/"
|
||||||
|
}
|
||||||
|
|
||||||
|
sync_screenshots() {
|
||||||
|
check_mount
|
||||||
|
echo "Moving screenshots..."
|
||||||
|
mv $baseDir/Pictures/Screenshots/* $HOME/.cache/phone/screenshots/
|
||||||
|
mv $HOME/.cache/phone/screenshots/* $HOME/Pictures/Screenshots/
|
||||||
|
}
|
||||||
|
|
||||||
|
sync_memes() {
|
||||||
|
check_mount
|
||||||
|
echo "Moving those memes... lol"
|
||||||
|
mv $baseDir/Pictures/Twitter/* "$HOME/Pictures/To Organize/"
|
||||||
|
mv $baseDir/Pictures/Reddit/* "$HOME/Pictures/To Organize/"
|
||||||
|
mv $baseDir/Pictures/Discord/* "$HOME/Pictures/To Organize/"
|
||||||
|
}
|
||||||
|
|
||||||
|
sync_telegram() {
|
||||||
|
check_mount
|
||||||
|
echo "Moving telegram media..."
|
||||||
|
mv $baseDir/Pictures/Telegram/* "$HOME/Pictures/To Organize/"
|
||||||
|
}
|
||||||
|
|
||||||
|
check_umount() {
|
||||||
|
umount $baseDir
|
||||||
|
rmdir $baseDir
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
mount) check_mount ;;
|
||||||
|
music) sync_music ;;
|
||||||
|
art) sync_art ;;
|
||||||
|
photos) sync_photos ;;
|
||||||
|
screenshots) sync_screenshots ;;
|
||||||
|
memes) sync_memes ;;
|
||||||
|
telegram) sync_telegram ;;
|
||||||
|
unmount) unmount ;;
|
||||||
|
everything)
|
||||||
|
#sync_music
|
||||||
|
sync_art
|
||||||
|
sync_photos
|
||||||
|
sync_screenshots
|
||||||
|
sync_memes
|
||||||
|
sync_telegram
|
||||||
|
check_umount
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "not a valid input"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
8
download_hs/.direnv/bin/nix-direnv-reload
Executable file
8
download_hs/.direnv/bin/nix-direnv-reload
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
dir="$(realpath $(dirname ${BASH_SOURCE[0]})/../..)"
|
||||||
|
_nix_direnv_force_reload=1 direnv exec "$dir" true
|
||||||
|
direnv reload
|
||||||
|
# direnv reload updates the mtime of .envrc. Also update the timestamp of the
|
||||||
|
# profile_rc file to keep track that we actually are up to date.
|
||||||
|
touch $dir/.direnv/{nix,flake}-profile-*.rc
|
||||||
|
|
||||||
1
download_hs/.direnv/nix-profile-.928.50aa30a13c4a
Symbolic link
1
download_hs/.direnv/nix-profile-.928.50aa30a13c4a
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
/nix/store/0gylbw8l57rajj2zpl8dm9mi5sq0lp93-download-hs-0.1.0.0-env
|
||||||
2024
download_hs/.direnv/nix-profile-.928.50aa30a13c4a.rc
Normal file
2024
download_hs/.direnv/nix-profile-.928.50aa30a13c4a.rc
Normal file
File diff suppressed because one or more lines are too long
1
download_hs/.envrc
Normal file
1
download_hs/.envrc
Normal file
@ -0,0 +1 @@
|
|||||||
|
use nix
|
||||||
5
download_hs/CHANGELOG.md
Normal file
5
download_hs/CHANGELOG.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# Revision history for download-hs
|
||||||
|
|
||||||
|
## 0.1.0.0 -- YYYY-mm-dd
|
||||||
|
|
||||||
|
* First version. Released on an unsuspecting world.
|
||||||
20
download_hs/LICENSE
Normal file
20
download_hs/LICENSE
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
Copyright (c) 2024 Danilo Reyes
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
"Software"), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included
|
||||||
|
in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
18
download_hs/app/Main.hs
Normal file
18
download_hs/app/Main.hs
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
module Main where
|
||||||
|
-- import Text.RE
|
||||||
|
|
||||||
|
|
||||||
|
-- Read a file line by line
|
||||||
|
readLines :: FilePath -> IO [String]
|
||||||
|
readLines = fmap lines . readFile
|
||||||
|
|
||||||
|
-- Example usage
|
||||||
|
main :: IO ()
|
||||||
|
main = do
|
||||||
|
let filePath = "./app/test.txt"
|
||||||
|
linesOfFile <- readLines filePath
|
||||||
|
mapM_ watchedURLS linesOfFile
|
||||||
|
|
||||||
|
watchedURLS :: String -> IO ()
|
||||||
|
watchedURLS line = do
|
||||||
|
putStrLn $ "Processing line: " ++ line
|
||||||
2294
download_hs/app/test.txt
Executable file
2294
download_hs/app/test.txt
Executable file
File diff suppressed because it is too large
Load Diff
12
download_hs/default.nix
Normal file
12
download_hs/default.nix
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
let pkgs = import <nixpkgs> { };
|
||||||
|
in pkgs.haskellPackages.developPackage {
|
||||||
|
root = ./.;
|
||||||
|
modifier = drv:
|
||||||
|
pkgs.haskell.lib.addBuildTools drv (with pkgs.haskellPackages; [
|
||||||
|
cabal-install
|
||||||
|
ghcid
|
||||||
|
haskell-language-server
|
||||||
|
fourmolu
|
||||||
|
regex
|
||||||
|
]);
|
||||||
|
}
|
||||||
BIN
download_hs/dist-newstyle/cache/compiler
vendored
Normal file
BIN
download_hs/dist-newstyle/cache/compiler
vendored
Normal file
Binary file not shown.
BIN
download_hs/dist-newstyle/cache/config
vendored
Normal file
BIN
download_hs/dist-newstyle/cache/config
vendored
Normal file
Binary file not shown.
BIN
download_hs/dist-newstyle/cache/elaborated-plan
vendored
Normal file
BIN
download_hs/dist-newstyle/cache/elaborated-plan
vendored
Normal file
Binary file not shown.
BIN
download_hs/dist-newstyle/cache/improved-plan
vendored
Normal file
BIN
download_hs/dist-newstyle/cache/improved-plan
vendored
Normal file
Binary file not shown.
1
download_hs/dist-newstyle/cache/plan.json
vendored
Normal file
1
download_hs/dist-newstyle/cache/plan.json
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"cabal-version":"3.10.2.1","cabal-lib-version":"3.10.2.1","compiler-id":"ghc-9.4.8","os":"linux","arch":"x86_64","install-plan":[{"type":"pre-existing","id":"base-4.17.2.1","pkg-name":"base","pkg-version":"4.17.2.1","depends":["ghc-bignum-1.3","ghc-prim-0.9.1","rts"]},{"type":"configured","id":"download-hs-0.1.0.0-inplace-download-hs","pkg-name":"download-hs","pkg-version":"0.1.0.0","flags":{},"style":"local","pkg-src":{"type":"local","path":"/home/jawz/Development/NixOS/scripts/download_hs/."},"dist-dir":"/home/jawz/Development/NixOS/scripts/download_hs/dist-newstyle/build/x86_64-linux/ghc-9.4.8/download-hs-0.1.0.0/x/download-hs","build-info":"/home/jawz/Development/NixOS/scripts/download_hs/dist-newstyle/build/x86_64-linux/ghc-9.4.8/download-hs-0.1.0.0/x/download-hs/build-info.json","depends":["base-4.17.2.1"],"exe-depends":[],"component-name":"exe:download-hs","bin-file":"/home/jawz/Development/NixOS/scripts/download_hs/dist-newstyle/build/x86_64-linux/ghc-9.4.8/download-hs-0.1.0.0/x/download-hs/build/download-hs/download-hs"},{"type":"pre-existing","id":"ghc-bignum-1.3","pkg-name":"ghc-bignum","pkg-version":"1.3","depends":["ghc-prim-0.9.1"]},{"type":"pre-existing","id":"ghc-prim-0.9.1","pkg-name":"ghc-prim","pkg-version":"0.9.1","depends":["rts"]},{"type":"pre-existing","id":"rts","pkg-name":"rts","pkg-version":"1.0.2","depends":[]}]}
|
||||||
BIN
download_hs/dist-newstyle/cache/solver-plan
vendored
Normal file
BIN
download_hs/dist-newstyle/cache/solver-plan
vendored
Normal file
Binary file not shown.
BIN
download_hs/dist-newstyle/cache/source-hashes
vendored
Normal file
BIN
download_hs/dist-newstyle/cache/source-hashes
vendored
Normal file
Binary file not shown.
BIN
download_hs/dist-newstyle/cache/up-to-date
vendored
Normal file
BIN
download_hs/dist-newstyle/cache/up-to-date
vendored
Normal file
Binary file not shown.
77
download_hs/download-hs.cabal
Normal file
77
download_hs/download-hs.cabal
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
cabal-version: 3.0
|
||||||
|
-- The cabal-version field refers to the version of the .cabal specification,
|
||||||
|
-- and can be different from the cabal-install (the tool) version and the
|
||||||
|
-- Cabal (the library) version you are using. As such, the Cabal (the library)
|
||||||
|
-- version used must be equal or greater than the version stated in this field.
|
||||||
|
-- Starting from the specification version 2.2, the cabal-version field must be
|
||||||
|
-- the first thing in the cabal file.
|
||||||
|
|
||||||
|
-- Initial package description 'download-hs' generated by
|
||||||
|
-- 'cabal init'. For further documentation, see:
|
||||||
|
-- http://haskell.org/cabal/users-guide/
|
||||||
|
--
|
||||||
|
-- The name of the package.
|
||||||
|
name: download-hs
|
||||||
|
|
||||||
|
-- The package version.
|
||||||
|
-- See the Haskell package versioning policy (PVP) for standards
|
||||||
|
-- guiding when and how versions should be incremented.
|
||||||
|
-- https://pvp.haskell.org
|
||||||
|
-- PVP summary: +-+------- breaking API changes
|
||||||
|
-- | | +----- non-breaking API additions
|
||||||
|
-- | | | +--- code changes with no API change
|
||||||
|
version: 0.1.0.0
|
||||||
|
|
||||||
|
-- A short (one-line) description of the package.
|
||||||
|
-- synopsis:
|
||||||
|
|
||||||
|
-- A longer description of the package.
|
||||||
|
-- description:
|
||||||
|
|
||||||
|
-- The license under which the package is released.
|
||||||
|
license: MIT
|
||||||
|
|
||||||
|
-- The file containing the license text.
|
||||||
|
license-file: LICENSE
|
||||||
|
|
||||||
|
-- The package author(s).
|
||||||
|
author: Danilo Reyes
|
||||||
|
|
||||||
|
-- An email address to which users can send suggestions, bug reports, and patches.
|
||||||
|
maintainer: CaptainJawZ@outlook.com
|
||||||
|
|
||||||
|
-- A copyright notice.
|
||||||
|
-- copyright:
|
||||||
|
category: Web
|
||||||
|
build-type: Simple
|
||||||
|
|
||||||
|
-- Extra doc files to be distributed with the package, such as a CHANGELOG or a README.
|
||||||
|
extra-doc-files: CHANGELOG.md
|
||||||
|
|
||||||
|
-- Extra source files to be distributed with the package, such as examples, or a tutorial module.
|
||||||
|
-- extra-source-files:
|
||||||
|
|
||||||
|
common warnings
|
||||||
|
ghc-options: -Wall
|
||||||
|
|
||||||
|
executable download-hs
|
||||||
|
-- Import common warning flags.
|
||||||
|
import: warnings
|
||||||
|
|
||||||
|
-- .hs or .lhs file containing the Main module.
|
||||||
|
main-is: Main.hs
|
||||||
|
|
||||||
|
-- Modules included in this executable, other than Main.
|
||||||
|
-- other-modules:
|
||||||
|
|
||||||
|
-- LANGUAGE extensions used by modules in this package.
|
||||||
|
-- other-extensions:
|
||||||
|
|
||||||
|
-- Other library packages from which modules are imported.
|
||||||
|
build-depends: base ^>=4.17.2.1
|
||||||
|
|
||||||
|
-- Directories containing source files.
|
||||||
|
hs-source-dirs: app
|
||||||
|
|
||||||
|
-- Base language which the package is written in.
|
||||||
|
default-language: Haskell2010
|
||||||
67
gdl/gdl_log_report
Executable file
67
gdl/gdl_log_report
Executable file
@ -0,0 +1,67 @@
|
|||||||
|
#!/usr/bin/env fish
|
||||||
|
|
||||||
|
mkdir -p /dev/shm/logs
|
||||||
|
|
||||||
|
set logs (journalctl --user -e -n 99999 \
|
||||||
|
-u download@\* \
|
||||||
|
-u instagram@\* \
|
||||||
|
--no-pager \
|
||||||
|
| string replace -r \
|
||||||
|
"(^.*)(workstation download\[\d+\]\: )" "" \
|
||||||
|
| grep -F \[error\] -B 1)
|
||||||
|
|
||||||
|
for i in (seq 1 (count $logs))
|
||||||
|
set -l log $logs[$i]
|
||||||
|
if test (string match -r "\[error\]" $log)
|
||||||
|
if test (string match -r \
|
||||||
|
"NotFoundError\: Twitter suspends accounts" \
|
||||||
|
$log)
|
||||||
|
set -a filter_suspended $i
|
||||||
|
else if test (string match -r \
|
||||||
|
"Tweets are protected" $log)
|
||||||
|
set -a filter_protected $i
|
||||||
|
else if test (string match -r \
|
||||||
|
"Requested user could not be found" $log)
|
||||||
|
set -a filter_missing $i
|
||||||
|
else if test (string match -r \
|
||||||
|
"\[instagram\]\[error\] HttpError\: \'404 Not Found\'" $log)
|
||||||
|
set -a filter_missing $i
|
||||||
|
else if test (string match -r \
|
||||||
|
"Unable to retrieve Tweets from this timeline" $log)
|
||||||
|
set -a filter_empty $i
|
||||||
|
else
|
||||||
|
set -a filter_others $i
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function _print_accounts -a filter_name --inherit-variable logs
|
||||||
|
set i_list $argv[3..-1]
|
||||||
|
for i in $i_list
|
||||||
|
set regex "\[\d+\/\d+\] "
|
||||||
|
set log $logs[(math $i-1)]
|
||||||
|
if test (string match -r $regex $log)
|
||||||
|
string replace -r $regex "" $log >>/dev/shm/logs/$filter_name
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if test -e /dev/shm/logs/$filter_name
|
||||||
|
echo "The following accounts are $filter_name:"
|
||||||
|
for line in (cat /dev/shm/logs/$filter_name | sort | uniq)
|
||||||
|
echo "- " $line
|
||||||
|
end
|
||||||
|
echo ""
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
_print_accounts suspended $filter_suspended
|
||||||
|
_print_accounts protected $filter_protected
|
||||||
|
_print_accounts missing $filter_missing
|
||||||
|
_print_accounts empty $filter_empty
|
||||||
|
|
||||||
|
echo "The following accouns have other errors:"
|
||||||
|
for i in $filter_others
|
||||||
|
echo $logs[(math $i-1)]
|
||||||
|
echo $logs[$i]
|
||||||
|
end
|
||||||
|
|
||||||
|
command rm -rf /dev/shm/logs
|
||||||
68
gdl/gdl_log_report.sh
Executable file
68
gdl/gdl_log_report.sh
Executable file
@ -0,0 +1,68 @@
|
|||||||
|
#! /usr/bin/env nix-shell
|
||||||
|
#! nix-shell -i fish -p fish fd ripgrep gum
|
||||||
|
|
||||||
|
mkdir -vp /dev/shm/logs
|
||||||
|
|
||||||
|
set logs (journalctl --user -e -n 99999 \
|
||||||
|
-u download@\* \
|
||||||
|
-u instagram@\* \
|
||||||
|
--no-pager \
|
||||||
|
| string replace -r \
|
||||||
|
"(^.*)(workstation download\[\d+\]\: )" "" \
|
||||||
|
| grep -F \[error\] -B 1)
|
||||||
|
|
||||||
|
for i in (seq 1 (count $logs))
|
||||||
|
set -l log $logs[$i]
|
||||||
|
if test (string match -r "\[error\]" $log)
|
||||||
|
if test (string match -r \
|
||||||
|
"NotFoundError\: Twitter suspends accounts" \
|
||||||
|
$log)
|
||||||
|
set -a filter_suspended $i
|
||||||
|
else if test (string match -r \
|
||||||
|
"Tweets are protected" $log)
|
||||||
|
set -a filter_protected $i
|
||||||
|
else if test (string match -r \
|
||||||
|
"Requested user could not be found" $log)
|
||||||
|
set -a filter_missing $i
|
||||||
|
else if test (string match -r \
|
||||||
|
"\[instagram\]\[error\] HttpError\: \'404 Not Found\'" $log)
|
||||||
|
set -a filter_missing $i
|
||||||
|
else if test (string match -r \
|
||||||
|
"Unable to retrieve Tweets from this timeline" $log)
|
||||||
|
set -a filter_empty $i
|
||||||
|
else
|
||||||
|
set -a filter_others $i
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function _print_accounts -a filter_name --inherit-variable logs
|
||||||
|
set i_list $argv[3..-1]
|
||||||
|
for i in $i_list
|
||||||
|
set regex "\[\d+\/\d+\] "
|
||||||
|
set log $logs[(math $i-1)]
|
||||||
|
if test (string match -r $regex $log)
|
||||||
|
string replace -r $regex "" $log >>/dev/shm/logs/$filter_name
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if test -e /dev/shm/logs/$filter_name
|
||||||
|
echo "The following accounts are $filter_name:"
|
||||||
|
for line in (cat /dev/shm/logs/$filter_name | sort | uniq)
|
||||||
|
echo "- " $line
|
||||||
|
end
|
||||||
|
echo ""
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
_print_accounts suspended $filter_suspended
|
||||||
|
_print_accounts protected $filter_protected
|
||||||
|
_print_accounts missing $filter_missing
|
||||||
|
_print_accounts empty $filter_empty
|
||||||
|
|
||||||
|
echo "The following accouns have other errors:"
|
||||||
|
for i in $filter_others
|
||||||
|
echo $logs[(math $i-1)]
|
||||||
|
echo $logs[$i]
|
||||||
|
end
|
||||||
|
|
||||||
|
command rm -rf /dev/shm/logs
|
||||||
68
gdl/gdl_mv
Executable file
68
gdl/gdl_mv
Executable file
@ -0,0 +1,68 @@
|
|||||||
|
#! /usr/bin/env nix-shell
|
||||||
|
#! nix-shell -i fish -p fish
|
||||||
|
|
||||||
|
|
||||||
|
set d_parent '/mnt/disk2/scrapping/JawZ'
|
||||||
|
set d_gdl 'gallery-dl'
|
||||||
|
set d_gdl_filtered 'organized'
|
||||||
|
|
||||||
|
function _get_parent
|
||||||
|
dirname (dirname $argv[1])
|
||||||
|
end
|
||||||
|
function _replace_path
|
||||||
|
string replace $argv[1] $argv[2] $argv[3]
|
||||||
|
end
|
||||||
|
|
||||||
|
function _mv_files -a d
|
||||||
|
for f in (find $d -type f)
|
||||||
|
set f_name (basename $f)
|
||||||
|
|
||||||
|
# Search for video files
|
||||||
|
if test (string match -r "\.mp4|\.webm\$" $f_name)
|
||||||
|
set f_dest (dirname $f)/Videos/(basename $f)
|
||||||
|
# Loop until the parent directory isn't named Videos|mp4
|
||||||
|
while test (string match -r "Videos|mp4" (basename (_get_parent $f_dest)))
|
||||||
|
set f_dest (_get_parent $f_dest)/(basename $f_dest)
|
||||||
|
end
|
||||||
|
# Place videos in their own subdirectory
|
||||||
|
set f_dest (_replace_path $d_gdl $d_gdl_filtered $f_dest)
|
||||||
|
else # Not a video file
|
||||||
|
set f_dest (_replace_path $d_gdl $d_gdl_filtered $f)
|
||||||
|
echo $f_dest
|
||||||
|
end
|
||||||
|
|
||||||
|
set d_dest (dirname $f_dest)
|
||||||
|
# Strip dirname for logging
|
||||||
|
set d_name (string replace $d_parent "" $d_dest)
|
||||||
|
# Check if destination exists
|
||||||
|
if test ! -e $d_dest
|
||||||
|
echo (set_color green)$d_name(set_color normal) \
|
||||||
|
"Doesn't exist, creating..."
|
||||||
|
mkdir -p $d_dest
|
||||||
|
end
|
||||||
|
|
||||||
|
# If destination exists, and basename isn't duplicated
|
||||||
|
if test \( -e $d_dest \) -a \( (basename $f) = (basename $f_dest) \)
|
||||||
|
echo "Moving the file" (set_color green)$f_name(set_color normal) \
|
||||||
|
into (set_color green)$d_name(set_color normal)
|
||||||
|
echo "Original path:"
|
||||||
|
echo (set_color brblue)$f(set_color normal)
|
||||||
|
echo "New path:"
|
||||||
|
echo (set_color brblue)$f_dest | grep -F "$d_name"
|
||||||
|
echo (set_color yellow)__________________________________(set_color normal)
|
||||||
|
# Move files
|
||||||
|
mv $f $f_dest
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# TEST IF THE SCRIPT RAN WITH ARGUMENTS
|
||||||
|
if test -z "$argv[1]"
|
||||||
|
echo "Please drag a few directories!"
|
||||||
|
# _mv_files $d_gdl false
|
||||||
|
end
|
||||||
|
if test -n "$argv[1]"
|
||||||
|
for d in $argv
|
||||||
|
_mv_files $d true
|
||||||
|
end
|
||||||
|
end
|
||||||
33
gdl/gdl_mv.sh
Executable file
33
gdl/gdl_mv.sh
Executable file
@ -0,0 +1,33 @@
|
|||||||
|
#! /nix/store/kxkdrxvc3da2dpsgikn8s2ml97h88m46-bash-interactive-5.2-p15/bin/bash
|
||||||
|
#! nix-shell -i bash -p bash fd ripgrep
|
||||||
|
|
||||||
|
base_directory='/mnt/disk2/scrapping/JawZ'
|
||||||
|
gdl_directory=$base_directory/gallery-dl
|
||||||
|
filtered_directory=$base_directory/organized
|
||||||
|
|
||||||
|
move_files() {
|
||||||
|
orig_file=$(realpath "$1")
|
||||||
|
|
||||||
|
dest_file=${orig_file//$gdl_directory/$filtered_directory}
|
||||||
|
dest_dir=$(realpath "$(dirname "$dest_file")")
|
||||||
|
|
||||||
|
mkdir -vp "$dest_dir"
|
||||||
|
command mv -in "$orig_file" "$dest_dir"
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
echo "Please drag a few directories or files!"
|
||||||
|
else
|
||||||
|
for arg in "$@"; do
|
||||||
|
if [ -d "$arg" ]; then
|
||||||
|
while IFS= read -r file; do
|
||||||
|
move_files "$file"
|
||||||
|
done < <(fd . "$arg" -tf)
|
||||||
|
elif [ -f "$arg" ]; then
|
||||||
|
move_files "$arg"
|
||||||
|
else
|
||||||
|
echo "It's neither a file or a directory"
|
||||||
|
echo "Please check your input"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
16
gdl/track_files.fish
Normal file
16
gdl/track_files.fish
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
#!/usr/bin/env fish
|
||||||
|
|
||||||
|
function _update_count
|
||||||
|
count (find ~/Pictures/To\ Organize/gdl-organizing/ -type f)
|
||||||
|
end
|
||||||
|
|
||||||
|
function track_files -a goal
|
||||||
|
set -f original_count (_update_count)
|
||||||
|
while test (_update_count) -ge $goal
|
||||||
|
echo "Currently there are:" \
|
||||||
|
(set_color red)(_update_count)(set_color normal)
|
||||||
|
echo Delete (set_color green)(math (_update_count) - $goal)(set_color normal) "more files to finish"
|
||||||
|
sleep 10
|
||||||
|
clear
|
||||||
|
end
|
||||||
|
end
|
||||||
1112
metadata_changes.log
Normal file
1112
metadata_changes.log
Normal file
File diff suppressed because it is too large
Load Diff
150
photos-metadata.sh
Executable file
150
photos-metadata.sh
Executable file
@ -0,0 +1,150 @@
|
|||||||
|
#! /usr/bin/env nix-shell
|
||||||
|
#! nix-shell -i bash -p bash exiftool
|
||||||
|
|
||||||
|
# Directory to start the search
|
||||||
|
base_dir=~/Pictures/Photos/Camera
|
||||||
|
log_file="metadata_changes.log"
|
||||||
|
|
||||||
|
# Function to extract date and time from filename
|
||||||
|
extract_datetime_from_filename() {
|
||||||
|
filename=$(basename "$1")
|
||||||
|
datetime=""
|
||||||
|
|
||||||
|
# Patterns to match filenames with date and time
|
||||||
|
if [[ "$filename" =~ ([0-9]{4})-([0-9]{2})-([0-9]{2})_([0-9]{2})_([0-9]{2})_([0-9]{2}) ]]; then
|
||||||
|
datetime="${BASH_REMATCH[1]}:${BASH_REMATCH[2]}:${BASH_REMATCH[3]} ${BASH_REMATCH[4]}:${BASH_REMATCH[5]}:${BASH_REMATCH[6]}"
|
||||||
|
elif [[ "$filename" =~ ([0-9]{4})([0-9]{2})([0-9]{2})_([0-9]{2})([0-9]{2})([0-9]{2}) ]]; then
|
||||||
|
datetime="${BASH_REMATCH[1]}:${BASH_REMATCH[2]}:${BASH_REMATCH[3]} ${BASH_REMATCH[4]}:${BASH_REMATCH[5]}:${BASH_REMATCH[6]}"
|
||||||
|
elif [[ "$filename" =~ ([0-9]{8})_([0-9]{6}) ]]; then
|
||||||
|
datetime="${BASH_REMATCH[1]:0:4}:${BASH_REMATCH[1]:4:2}:${BASH_REMATCH[1]:6:2} ${BASH_REMATCH[2]:0:2}:${BASH_REMATCH[2]:2:2}:${BASH_REMATCH[2]:4:2}"
|
||||||
|
elif [[ "$filename" =~ ([0-9]{8})([0-9]{6}) ]]; then
|
||||||
|
datetime="${BASH_REMATCH[1]:0:4}:${BASH_REMATCH[1]:4:2}:${BASH_REMATCH[1]:6:2} ${BASH_REMATCH[2]:0:2}:${BASH_REMATCH[2]:2:2}:${BASH_REMATCH[2]:4:2}"
|
||||||
|
elif [[ "$filename" =~ ([0-9]{8}) ]]; then
|
||||||
|
datetime="${BASH_REMATCH[1]:0:4}:${BASH_REMATCH[1]:4:2}:${BASH_REMATCH[1]:6:2} 00:00:00"
|
||||||
|
elif [[ "$filename" =~ ([0-9]{4})-([0-9]{2})-([0-9]{2}) ]]; then
|
||||||
|
datetime="${BASH_REMATCH[1]}:${BASH_REMATCH[2]}:${BASH_REMATCH[3]} 00:00:00"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Validate extracted date
|
||||||
|
if echo "$datetime" | grep -qE '^([0-9]{4}):([0-9]{2}):([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})$'; then
|
||||||
|
year=$(echo "$datetime" | cut -d':' -f1)
|
||||||
|
month=$(echo "$datetime" | cut -d':' -f2)
|
||||||
|
day=$(echo "$datetime" | cut -d':' -f3 | cut -d' ' -f1)
|
||||||
|
hour=$(echo "$datetime" | cut -d' ' -f2 | cut -d':' -f1)
|
||||||
|
minute=$(echo "$datetime" | cut -d':' -f5)
|
||||||
|
second=$(echo "$datetime" | cut -d':' -f6)
|
||||||
|
|
||||||
|
# Remove leading zeros for validation
|
||||||
|
year=$((10#$year))
|
||||||
|
month=$((10#$month))
|
||||||
|
day=$((10#$day))
|
||||||
|
hour=$((10#$hour))
|
||||||
|
minute=$((10#$minute))
|
||||||
|
second=$((10#$second))
|
||||||
|
|
||||||
|
if (( year < 2009 || year > 2024 )) || (( month < 1 || month > 12 )) || (( day < 1 || day > 31 )) || (( hour > 23 )) || (( minute > 59 )) || (( second > 59 )); then
|
||||||
|
datetime=""
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
datetime=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "$datetime"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Function to log changes
|
||||||
|
log_change() {
|
||||||
|
photo="$1"
|
||||||
|
old_date="$2"
|
||||||
|
new_date="$3"
|
||||||
|
echo "File: $photo" >> "$log_file"
|
||||||
|
echo " Old Date: $old_date" >> "$log_file"
|
||||||
|
echo " New Date: $new_date" >> "$log_file"
|
||||||
|
echo "" >> "$log_file"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Loop through each year directory
|
||||||
|
for year_dir in "$base_dir"/*/; do
|
||||||
|
year=$(basename "$year_dir")
|
||||||
|
|
||||||
|
# Exclude VFS directory
|
||||||
|
if [ "$year" == "VFS" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Loop through each month directory
|
||||||
|
for month_dir in "$year_dir"*/; do
|
||||||
|
month=$(basename "$month_dir")
|
||||||
|
|
||||||
|
# Loop through each photo in the month directory
|
||||||
|
for photo in "$month_dir"*; do
|
||||||
|
if [ -f "$photo" ]; then
|
||||||
|
# Extract the date from the photo metadata
|
||||||
|
photo_date=$(exiftool -DateTimeOriginal -d "%Y:%m:%d %H:%M:%S" "$photo" | awk -F': ' '{print $2}')
|
||||||
|
|
||||||
|
if [ -z "$photo_date" ]; then
|
||||||
|
# Scenario 2: No date metadata
|
||||||
|
filename_datetime=$(extract_datetime_from_filename "$photo")
|
||||||
|
|
||||||
|
if [ -n "$filename_datetime" ]; then
|
||||||
|
new_date="$filename_datetime"
|
||||||
|
log_change "$photo" "No date metadata" "$new_date"
|
||||||
|
echo "Updating date for: $photo"
|
||||||
|
echo " Extracted date from filename: $new_date"
|
||||||
|
# exiftool -overwrite_original -DateTimeOriginal="$new_date" "$photo"
|
||||||
|
else
|
||||||
|
new_date="$year:$month:01 00:00:00"
|
||||||
|
log_change "$photo" "No date metadata" "$new_date"
|
||||||
|
echo "Updating date for: $photo"
|
||||||
|
echo " Defaulting to directory date: $new_date"
|
||||||
|
# exiftool -overwrite_original -DateTimeOriginal="$new_date" "$photo"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
photo_year=$(echo "$photo_date" | cut -d':' -f1)
|
||||||
|
photo_month=$(echo "$photo_date" | cut -d':' -f2)
|
||||||
|
photo_day=$(echo "$photo_date" | cut -d':' -f3)
|
||||||
|
|
||||||
|
if [ "$photo_year" != "$year" ] || [ "$photo_month" != "$month" ]; then
|
||||||
|
# Scenario 1: Date mismatch
|
||||||
|
filename_datetime=$(extract_datetime_from_filename "$photo")
|
||||||
|
|
||||||
|
if [ -n "$filename_datetime" ]; then
|
||||||
|
filename_year=$(echo "$filename_datetime" | cut -d':' -f1)
|
||||||
|
filename_month=$(echo "$filename_datetime" | cut -d':' -f2)
|
||||||
|
filename_day=$(echo "$filename_datetime" | cut -d':' -f3)
|
||||||
|
|
||||||
|
if [ "$photo_year" == "$filename_year" ] && [ "$photo_month" == "$filename_month" ]; then
|
||||||
|
echo "Mismatch found: $photo"
|
||||||
|
echo " Directory date: $year/$month"
|
||||||
|
echo " Photo date: $photo_date"
|
||||||
|
echo " Filename date matches photo date, file is in the wrong directory."
|
||||||
|
echo " Suggested action: Move to $filename_year/$filename_month/$filename_day"
|
||||||
|
else
|
||||||
|
new_date="$filename_datetime"
|
||||||
|
log_change "$photo" "$photo_date" "$new_date"
|
||||||
|
echo "Mismatch found: $photo"
|
||||||
|
echo " Directory date: $year/$month"
|
||||||
|
echo " Photo date: $photo_date"
|
||||||
|
echo " Filename date: $filename_datetime"
|
||||||
|
echo " Updating photo metadata to match filename date."
|
||||||
|
# exiftool -overwrite_original -DateTimeOriginal="$new_date" "$photo"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Mismatch found: $photo"
|
||||||
|
echo " Directory date: $year/$month"
|
||||||
|
echo " Photo date: $photo_date"
|
||||||
|
echo " No valid date found in filename."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
|
||||||
|
# Ask for confirmation before proceeding to the next year
|
||||||
|
read -p "Finished processing year $year. Do you want to continue to the next year? (y/n): " response
|
||||||
|
if [[ "$response" != "y" ]]; then
|
||||||
|
echo "Stopping script."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
Loading…
x
Reference in New Issue
Block a user