Apsired programmer designing mods and apps for their favorite videogames
Anyone wanna make a repo together?
Game genres I can't get enough of: dark fantasy, arena shooters, team-based co-op, survival horror, indie
A program to help keep track of Genshin Impact's time gates.
There are too many style sheets bloating the program. This will make it hard to change the UI design in a later update.
I've had issues with stylesheets like things not applying correctly so I had to write duplicate stylesheets in other classes instead of there being one in the main window class.
Notifications will disappear from the notification center if ignored. If the user is AFK and a notification goes off, the notification will disappear and the user won't know it went off.
I don't know if this happens on other platforms.
Please see the Apprise documentation for clarification.
saveData()
and loadData()
Are very messy and I feel like they can be written better.
I would like to stick with the .txt format but other approaches are welcome. I just don't want to lose the readability of how it is currently.
I just want to make sure the information on there is accurate and easy to understand.
If anyone has some extra information that might be useful don't hesitate to contribute.
In the linux app, the icon is missing from the app, when ran in the debug terminal, the output is this:
(main:240934): Gtk-WARNING **: 21:02:47.641: Theme parsing error: gtk.css:2052:32: Expected ',' in color definition
QSystemTrayIcon::setVisible: No Icon set
I'll probably take a look at this later, but adding here just in case
:p
There have been too many cases of me release a new version only for it to break once converted into a executable.
We should make test cases using PyTest testing almost every function
In the case of a crash or something else going wrong, logging will make testing and troubleshooting bugs make the development process faster
I want Python's built-in logging module to be used
I want Genshin Stopwatch to be able to run on all desktop platforms. However, I do not know how to change .py
files into an executable for Linux and MacOS systems. If someone can comment down below on how to achieve this that'd be great.
Genshin Stopwatch is running off of the PyQt5 framework which is cross platform and should work be able to work on MacOS and Linux. But I cannot test to see if Genshin Stopwatch works on either platforms since I only own a windows machine.
Issue #2 needs to be fixed before this issue can close because it uses a module exclusive to windows called win10toast
I want to bundle guide.html
into the executable so that when there are updates to it, the program will update with it and the user will only have to replace the executable instead of the executable AND the html file.
If anyone knows how to do this please don't be afraid to contribute.
main.py is super cluttered and it's hard to develop changes without something else breaking or getting lost.
Thankfully most of the program is separated in classes already.
What I want to know is how to deal with variables and ConfigParser classes that are used throughout multiple classes.
We could make singleton classes. And a constants.py to keep things consistent.
If there are better ways to handle this please let me know
I want to use a better notification module that gives the notification buttons so the user can restart the timer when they click it.
I've tried to add this myself but I'm not skilled enough at threading with PyQt5.
There are lines of code in style.py
that need to be shorted or formatted differently.
For example:
self.stopwatchStyleSheet_formatted = self.stopwatchStyleSheet.format(self.colorPallets[self.selectedColorPallet][0], self.colorPallets[self.selectedColorPallet][1], self.colorPallets[self.selectedColorPallet][2], self.colorPallets[self.selectedColorPallet][3], self.colorPallets[self.selectedColorPallet][4], self.stopwatchBorderColor)
Yes. this is a single line of code lol.
Unlike windows, linux executables dont store icons, which means the app won't have an icon :(
Since linux uses desktop entries to get icons, I'll implement a small python function with will make a desktop entry for the app which the OS will detect and display the icon. Additionally, this would allow the app to be opened from the start menu without an install.
When Genshin Stopwatch detects a new update, it will prompt a link to the latest release page.
I was wondering if there was a way to download the release, unzip, replace it with the current executable, and then delete what's left of the .zip
since that's all that's needed in order to update.
We also need to take account the platform the user is using, as there are MacOS/Linux versions as well
A new stylesheet rework was just put into place. We need more color palette options (Color palette for each element in Genshin Impact) which can easily be done through an addition to a dictionary in style.py -> __init__() -> self.colorPallets
there are some comments there to help.
My color theory isn't great so I was hoping someone could help me out with choosing the colors. If you have good suggestions for color pallets please say so in this thread.
One more thing I need done is that not every stylesheet was implemented into style.py
like countdown
in addStopWatch()
. Because of this their stylesheets won't update correctly.
There's not much I changed to the workflow file, but for some reason it won't automatically upload artifacts to the latest release anymore, it skips over that step.
I have Mac and Linux versions of Genshin Stopwatch but I don't own Mac or Linux systems so I don't know what works or what doesn't.
Please see the latest pre-release and give it a shot. If you encounter any issues comment here or DM me on my socials.
The new notification module imports a lot of hidden imports that are not needed. There are probably other hidden imports from other modules that aren't needed either.
I have a main.spec file in the repo that can be worked on.
The only hidden imports that are needed for the notification module are the desktop notifications ones for Windows, MacOS and Linux.
Here is an example of the uneeded hidden imports, as seen through PyInstaller
packaging Genshin Stopwatch into an exe
If anyone knows a lot about PyInstaller please take a look.
If anyone wants to take the mantle and help document my program with comments go ahead.
If you have any questions on how or why something works in my code please ask in this thread.
I thought I prevented this from happening but it happened to me today.
I think it has to do something with this located in NotificationPanel()
:
self.setWindowFlags(Qt.WindowType.FramelessWindowHint | Qt.WindowType.WindowDoesNotAcceptFocus)
I can't find much documentation but here are a couple sources:
If you have any questions about this issue or navigating through the project please let me know.
I feel like there are unnecessary steps in main.yml and it just causes confusion and doesn't have maintainability.
Here is what is what actions does.
The line of code that sets the size of the notification is as follows:
self.setFixedSize(400, 100)
Please adjust the self.setFixedSize
parameters to scale with the user's screen resolution.
The line of code is within main.py
inside the NotificationPanel
's __init__
method.
To grab the user screen resolution, you'll need to use PyQt5
's QDesktopWidget().screenGeometry()
and QDesktopWidget().availableGeometry()
methods.
Here is the documentation.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.