Package: pyrobox
pyrobox 🔥Note :DEFAULT UPLOAD PASSWORD:SECretyou can change it by editing the code (seeconfigclass at top)to set password from command line, use-kor--passwordflagStatusRequesting for more suggesions and ideasFeel Free to Support MeBasic FEATURESFile Hosting system (Serve files from local Storage system)Access Shared File System from Multiple DevicesHas optional account system (Admin can add users or allow signup) (CheckAdvanced Account Systemsection)Set Server Permission (CheckCustomization Optionssection)Extra FEATURES🔽 DOWNLOAD AND VIDEO STREAM WITHPAUSE AND RESUME🔼 UPLOAD WITHPASSWORD(User password or server-wide password)👌 HTML5 drag and drop uploader📈 MULTIPLE FILEUPLOAD📝 RENAME📁 FOLDER DOWNLOAD asZIP(uses temp folder)⏯ Built-in VIDEO PLAYER🔁DELETE FILE(MOVE TO RECYCLE BIN)🔥 PERMANENTLY DELETE⛓File managerlikeNAVIGATION BAR📑 Right click Context menu (Tap n hold on touch device)🧨 RELOAD SERVER FROM REMOTE [DEBUG PURPOSE]🆕 FOLDER CREATION💬 Pop-up messages UI(from my Web leach repo)🌐 (Didn't test yet) If you are using REAL IP AND ALLOW PYTHON TO USE PUBLIC NETWORK, YOUR SERVER CAN BE VISIBLE AROUND THE GLOBE. (also vulnerable, since you can't control accessyet)🧬 Clone entire directory from Host to Client with least changes (last modified preserved)🔜 More comming soonAll of these without the need of any internet connection (having connection will provide better experience)Server side requirementPython 3.7 or higher. Older support available.[^1]Basic knowledge about Pythonsend2trash,natsortpython modules[^1]: [<=3.4 compatibility] is on the way.InstallationInstall Python 3.7 or higherClose older pyrobox process if already runningInstall using PIPOn WindowsOpenCMDorPowerShellRunpip install pyroboxRunpyroboxto launch the serverOn LinuxOpenTerminalRunpip3 install pyroboxRunpyroboxto launch the serverCHECKFAQFOR FUTURE HELP AND ISSUE FIXCustomizationSimply running the code on will create a server onCURRENT WORKING DIRECTORYonPort: 6969On browser (on device under same router/wifi network), go todeviceIP:port_numberto see the output like this:http://192.168.0.101:6969/you must allow python in firewall to access network, checkFAQfor more helpTo change the server running directory,i) either edit the code  (seeconfigclass at top)ii) or add-dor--directorycommand line argument when launching the programpyrobox -d .to launch the server in current directory (where the file is)pyrobox -d "D:\Server\Public folder\"(Use Double-Quotation while directory has space)pyrobox -d "D:/Server/Public folder"(Forward or backward slash really doesn't matter, unless your terminal thinks otherwise)To change port numberi) just edit the code for permanent change  (seeconfigclass at top)ii) or add the port number at the end of the command line argpyrobox 45678# will run on port 45678pyrobox -d . 45678# will run on port 45678 in current directoryTo specify alternate bind addressAdd bind add-bind {address}# ie:-bind 127.0.0.2or-bind 127.0.0.99To change upload passwordi) or add-kor--passwordcommand line argument when launching the programpyrobox -k "my new password"to launch the server with new passwordpyrobox -k ""to launch the server without passwordpyroboxto launch the server with default password (SECret)ii) just edit the code for permanent change  (seeconfigclass at top)Optional configurationsusage:local_server_pyrobox.py [--password PASSWORD] [--no-upload] [--no-zip] [--no-update] [--no-delete] [--no-download] [--read-only] [--view-only] [--bind ADDRESS] [--directory DIRECTORY] [--version] [-h] [port]Positional Argumentsarg valueDescriptionportSpecify alternate port [default: 6969]OptionsFlags/ArgvalueDescription--passwordPASSWORD, -kPASSWORDUpload Password (GUESTS users and Nameless server users must use it to upload files)(default: SECret)--directoryDIRECTORY, -dDIRECTORYSpecify alternative directory [default: current directory]--bindADDRESS, -bADDRESSSpecify alternate bind address [default: all interfaces]--version, -vshow program's version number and exit-h, --helpshow this help message and exit--no-extra-logDisable file path and [= + - #] based logs (default: False)Customization OptionsFlagsDescription--no-upload, -nuFiles can't be uploaded (default: False)--no-zip, -nzDisable Folder->Zip downloading (default: False)--no-modify, -nmDisable File Modification (ie:renaming,overwriting existing files) (On upload, if file exists, will add a number at the end) (default: False)--no-delete, -ndDisable File Deletion (default: False)--no-download, -ndwDisable File Downloading [videos won't play either] (default: False)--read-only, -roRead Only Modedisables upload and any modifications ie: rename, delete(default: False)--view-only, -voOnly allowed to see file list, nothing else (default: False)Advanced Account SystemYou must give a--name [Name]and--admin-id [USER Name],--admin-pass [PASSWORD]to create an admin account. If guest not allowed--no-guest-allowedUser must login to access the server. You can also disable signing up--no-signup(Only admin can add user from admin page). Admin can also update user permission from admin page.Flags/ArgvalueDescription--nameNAME, -nNAMEName of the user (default: None)--admin-idADMIN_ID, -aidADMIN_IDAdmin ID (default: None)--admin-passADMIN_PASS, -akADMIN_PASSAdmin Password (default: None)--no-signup, -nsDisable Signing up (Only admin can add user from admin page)(default: False)--no-guest-allowed, -ngDisable Guest Access (default: False)Account Examplepyrobox -n "My Server1" -aid "admin" -ak "admin123" -k "Guest_pass"# will allow anyone to access the server, but they must useGuest_passto upload filespyrobox -n "My Server2" -aid "admin" -ak "admin123" -ng# If someone wants to access the server they must sign up via signup page first. No guest allowedpyrobox -n "My Server3" -aid "admin" -ak "admin123" -ng -ns# Only admin can access the server. No guest allowed, no signup allowed. Admin can add user from admin pageTODOhttps://github.com/RaSan147/pyrobox/issues/33Show thumbnails, for png and jpg (how to do with just standard library?), For others, just show extension.https://github.com/RaSan147/pyrobox/issues/34Copy stream URL for videos to play with any video playerhttps://github.com/RaSan147/pyrobox/issues/36Add side bar to do something 🤔check output ip and port accuracy on multiple oshttps://github.com/RaSan147/pyrobox/issues/37Backup code if Reload causes unhandled issue and can't be accessedAdd more flags to disable specific featuresSupport for more featuresContext menuRight click on any file linkFAQUsing WSL, "PIP not found"Run this to installpip3and addpipto pathsudoapt-ypurgepython3-pip
sudopython3-mpipuninstallpip
sudoapt-yinstallpython3-pip
pip3install--upgradepipecho"export PATH=\"${HOME}/.local/bin:$PATH\"">>"${HOME}"/.bashrcRe-running the file should work.Using Linux, "PIP not found"Run this to installpip3sudoapt-ypurgepython3-pip
sudopython3-mpipuninstallpip
sudoapt-yinstallpython3-pip
pip3install--upgradepipRe-running the file should work.Deleted (Move to Recycle), But WHERE ARE THEY?? [on LINUX & WSL]Actually the feature is working fine, unfortunately NO-GUI mode linux and WSL don't recycle bin, so you can't find it!
And to make things worse,you need to manually clear the recyle binfrom~/.local/share/TrashSO I'D RECOMMAND USING DELETE PARMANENTLYRunning on WINDOWS, but can't access with other device [FIREWALL]You probably haveFireWall ONand not configured.
For your safety, I'd recommend you to allow Python on private network and run the server when your network is Private.
IN SHORT: ALLOW PYTHON ON FIREWALL, RUN THE SERVERnote: allowed on private but using public network on firewall will cause similar issue, you gotta make both same or allow python both on public and privateThanks tohttps://github.com/bones7456/bones7456/blob/master/SimpleHTTPServerWithUpload.py(the guy who made upload possible)https://gist.github.com/UniIsland/3346170(the guy who made multiple file upload possible)https://github.com/SethMMorton/natsort(sorting titles)https://github.com/sandes/zipfly(modifiedlets you see the zip progress)https://github.com/sampotts/plyr(improvedvideo player)Disclaimer:the owner or the programmers or any content of this repository hold no responsibility for any kind of data loss or modification on your system and do not warrenty for such actions. I tried my best to prevent all sorts of ways (that I am currently aware of) to prevent data loss or unwanted data modification. SeeData Safety Measurestaken on this projects to prevent unwanted data loss.