├── debian ├── source │ └── format ├── rules ├── salsa-ci.yml ├── mousam.doc-base.ex ├── postrm ├── postinst ├── control ├── weather.1 └── copyright ├── po ├── meson.build ├── LINGUAS └── POTFILES ├── screenshots ├── ss1.png ├── ss2.png └── ss3.png ├── website ├── public │ └── weather.png ├── src │ ├── assets │ │ ├── hero_bg.png │ │ ├── weather.png │ │ └── weather_bg.jpg │ ├── index.css │ ├── main.jsx │ ├── components │ │ ├── Button.jsx │ │ ├── ImageSlide.jsx │ │ ├── Footer.jsx │ │ ├── CopyToClipboard.jsx │ │ ├── Support.jsx │ │ ├── OthersInstallation.jsx │ │ ├── SnapInstallation.jsx │ │ ├── Features.jsx │ │ ├── FlatpakInstallation.jsx │ │ ├── Contribute.jsx │ │ ├── Carousal.jsx │ │ ├── Installation.jsx │ │ ├── Hero.jsx │ │ ├── Navbar.jsx │ │ └── About.jsx │ └── App.jsx ├── postcss.config.js ├── vite.config.js ├── README.md ├── tailwind.config.js ├── package.json └── index.html ├── update-po ├── update-pot ├── src ├── mousam.gresource.xml ├── shortcutsDialog.py ├── windowAbout.py ├── frontendUiDrawbarLine.py ├── backendFindCity.py ├── backendAirPollution.py ├── mousam.in ├── frontendUiDrawPollutionBar.py ├── frontendUiDrawImageIcon.py ├── frontendUiDrawBar.py ├── meson.build ├── utils.py ├── config.py ├── shortcutsDialog.ui ├── main.py ├── frontendCardAirPollution.py ├── Models.py └── frontendCurrentCond.py ├── data ├── io.github.amit9838.mousam.desktop.in ├── icons │ ├── hicolor │ │ ├── scalable │ │ │ └── mousam_icons │ │ │ │ ├── arrow.svg │ │ │ │ ├── raindrop.svg │ │ │ │ ├── raindrops.svg │ │ │ │ ├── clear-night.svg │ │ │ │ ├── snowflake.svg │ │ │ │ ├── clear-day.svg │ │ │ │ ├── wind.svg │ │ │ │ ├── thunderstorms.svg │ │ │ │ ├── fog.svg │ │ │ │ ├── overcast.svg │ │ │ │ ├── partly-cloudy-night.svg │ │ │ │ ├── partly-cloudy-day.svg │ │ │ │ ├── fog-night.svg │ │ │ │ ├── fog-day.svg │ │ │ │ ├── drizzle.svg │ │ │ │ ├── rain.svg │ │ │ │ ├── overcast-fog.svg │ │ │ │ ├── partly-cloudy-night-fog.svg │ │ │ │ ├── partly-cloudy-day-fog.svg │ │ │ │ ├── overcast-night.svg │ │ │ │ ├── overcast-day.svg │ │ │ │ ├── thunderstorms-rain.svg │ │ │ │ ├── overcast-drizzle.svg │ │ │ │ ├── partly-cloudy-night-drizzle.svg │ │ │ │ ├── partly-cloudy-day-drizzle.svg │ │ │ │ ├── overcast-rain.svg │ │ │ │ ├── partly-cloudy-night-rain.svg │ │ │ │ ├── partly-cloudy-day-rain.svg │ │ │ │ ├── overcast-night-fog.svg │ │ │ │ ├── overcast-day-fog.svg │ │ │ │ ├── thunderstorms-night-rain.svg │ │ │ │ ├── thunderstorms-overcast-rain.svg │ │ │ │ ├── snow.svg │ │ │ │ ├── thunderstorms-day-rain.svg │ │ │ │ ├── overcast-night-rain.svg │ │ │ │ ├── overcast-day-rain.svg │ │ │ │ ├── thunderstorms-snow.svg │ │ │ │ ├── partly-cloudy-night-snow.svg │ │ │ │ ├── thunderstorms-night-overcast-rain.svg │ │ │ │ ├── overcast-snow.svg │ │ │ │ └── thunderstorms-day-overcast-rain.svg │ │ └── symbolic │ │ │ └── apps │ │ │ └── io.github.amit9838.mousam-symbolic.svg │ └── meson.build ├── meson.build ├── dependencies │ └── python3-requests.json └── io.github.amit9838.mousam.gschema.xml ├── .gitignore ├── meson.build ├── .github ├── FUNDING.yml └── workflows │ ├── snap.yaml │ └── flatpak.yml ├── CODE_OF_CONDUCT.md ├── io.github.amit9838.mousam.json ├── CONTRIBUTION_GUIDE.md ├── snap └── snapcraft.yaml └── README.md /debian/source/format: -------------------------------------------------------------------------------- 1 | 3.0 (native) 2 | -------------------------------------------------------------------------------- /po/meson.build: -------------------------------------------------------------------------------- 1 | i18n.gettext('mousam', preset: 'glib') 2 | -------------------------------------------------------------------------------- /screenshots/ss1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amit9838/mousam/HEAD/screenshots/ss1.png -------------------------------------------------------------------------------- /screenshots/ss2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amit9838/mousam/HEAD/screenshots/ss2.png -------------------------------------------------------------------------------- /screenshots/ss3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amit9838/mousam/HEAD/screenshots/ss3.png -------------------------------------------------------------------------------- /website/public/weather.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amit9838/mousam/HEAD/website/public/weather.png -------------------------------------------------------------------------------- /website/src/assets/hero_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amit9838/mousam/HEAD/website/src/assets/hero_bg.png -------------------------------------------------------------------------------- /website/src/assets/weather.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amit9838/mousam/HEAD/website/src/assets/weather.png -------------------------------------------------------------------------------- /website/src/assets/weather_bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amit9838/mousam/HEAD/website/src/assets/weather_bg.jpg -------------------------------------------------------------------------------- /update-po: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | for po in po/*.po; do 4 | msgmerge --update $po po/mousam.pot 5 | rm $po~ 6 | done 7 | -------------------------------------------------------------------------------- /update-pot: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | xgettext --keyword=_ --keyword=N_ --keyword=C_:1c,2 --output=po/mousam.pot -f po/POTFILES 3 | -------------------------------------------------------------------------------- /website/postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /po/LINGUAS: -------------------------------------------------------------------------------- 1 | cs 2 | de 3 | es 4 | fr 5 | hi 6 | hu 7 | it 8 | ko 9 | nl 10 | ro 11 | ru 12 | tr 13 | pt_BR 14 | pl 15 | uk 16 | th 17 | zh_CN 18 | zh_TW 19 | -------------------------------------------------------------------------------- /website/src/index.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | @layer base { 6 | html { 7 | font-family:"JetBrains Mono"; 8 | } 9 | } -------------------------------------------------------------------------------- /website/src/main.jsx: -------------------------------------------------------------------------------- 1 | import ReactDOM from 'react-dom/client'; 2 | 3 | import App from './App.jsx'; 4 | import './index.css'; 5 | 6 | ReactDOM.createRoot(document.getElementById('root')).render(); 7 | -------------------------------------------------------------------------------- /website/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite' 2 | import react from '@vitejs/plugin-react' 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | base: "/mousam/", 7 | plugins: [react()], 8 | }) 9 | -------------------------------------------------------------------------------- /website/README.md: -------------------------------------------------------------------------------- 1 | ## Mousam Website 2 | 3 | #### Tech Stack 4 | - React + Vite with js 5 | - Tailwind css 6 | 7 | #### Developer Options 8 | 9 | Run locally 10 | > npm run dev 11 | 12 | Deploy to gh-pages 13 | > npm run deploy (only collaborators can deploy) -------------------------------------------------------------------------------- /src/mousam.gresource.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | css/style.css 5 | shortcutsDialog.ui 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /data/io.github.amit9838.mousam.desktop.in: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Mousam 3 | Exec=mousam 4 | Comment=Weather at a glance 5 | Icon=io.github.amit9838.mousam 6 | Terminal=false 7 | Type=Application 8 | Categories=Application;Utility;GTK; 9 | Keywords=Weather;Mousam;Rain;Cloud;Forecast;GTK4;Python;temperature; 10 | StartupNotify=true 11 | -------------------------------------------------------------------------------- /src/shortcutsDialog.py: -------------------------------------------------------------------------------- 1 | from gi.repository import Gtk 2 | 3 | 4 | @Gtk.Template(resource_path='/io/github/amit9838/mousam/shortcutsDialog.ui') 5 | class ShortcutsDialog(Gtk.ShortcutsWindow): 6 | __gtype_name__ = 'MousamShortcutsDialog' 7 | 8 | def __init__(self, parent): 9 | super().__init__() 10 | self.set_transient_for(parent) 11 | -------------------------------------------------------------------------------- /website/src/components/Button.jsx: -------------------------------------------------------------------------------- 1 | export default function Button({ children, myStyle, ...props }) { 2 | let styles = "hover:bg-primary px-4 py-2 text-sm"; 3 | if (myStyle != null) { 4 | styles = styles+ " "+ myStyle; 5 | } 6 | 7 | return ( 8 | 11 | ); 12 | } 13 | -------------------------------------------------------------------------------- /debian/rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | # See debhelper(7) (uncomment to enable) 3 | # output every command that modifies files on the build system. 4 | # export DH_VERBOSE = 1 5 | 6 | 7 | %: 8 | dh $@ --with=python3 --buildsystem=meson 9 | 10 | 11 | #override_dh_auto_configure: 12 | # dh_auto_configure -- \ 13 | # -DCMAKE_LIBRARY_PATH=$(DEB_HOST_MULTIARCH) 14 | -------------------------------------------------------------------------------- /website/src/components/ImageSlide.jsx: -------------------------------------------------------------------------------- 1 | // src/ImageSlide.js 2 | // eslint-disable-next-line react/prop-types 3 | const ImageSlide = ({ path }) => { 4 | return ( 5 |
6 | slide 7 |
8 | ); 9 | }; 10 | 11 | export default ImageSlide; 12 | -------------------------------------------------------------------------------- /website/src/components/Footer.jsx: -------------------------------------------------------------------------------- 1 | export default function Footer() { 2 | return ( 3 |
4 |

© 2024 Mousam App. All rights reserved.

5 | 6 |
7 | ); 8 | } 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .flatpak-builder 2 | .vscode 3 | builddir 4 | __pycache__ 5 | 6 | # Logs 7 | logs 8 | *.log 9 | npm-debug.log* 10 | yarn-debug.log* 11 | yarn-error.log* 12 | pnpm-debug.log* 13 | lerna-debug.log* 14 | 15 | node_modules 16 | dist 17 | dist-ssr 18 | *.local 19 | 20 | # Editor directories and files 21 | .vscode/* 22 | !.vscode/extensions.json 23 | .idea 24 | .DS_Store 25 | *.suo 26 | *.ntvs* 27 | *.njsproj 28 | *.sln 29 | *.sw? 30 | dist -------------------------------------------------------------------------------- /meson.build: -------------------------------------------------------------------------------- 1 | project('mousam', 2 | version: '1.3.2', 3 | meson_version: '>= 0.61.0', 4 | default_options: [ 'warning_level=2', 'werror=false', ], 5 | ) 6 | 7 | i18n = import('i18n') 8 | gnome = import('gnome') 9 | 10 | subdir('data') 11 | subdir('src') 12 | subdir('po') 13 | 14 | install_emptydir(get_option('datadir') / 'icons/hicolor/scalable') 15 | 16 | gnome.post_install( 17 | glib_compile_schemas: true, 18 | gtk_update_icon_cache: true, 19 | update_desktop_database: true, 20 | ) 21 | -------------------------------------------------------------------------------- /website/tailwind.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('tailwindcss').Config} */ 2 | export default { 3 | content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"], 4 | theme: { 5 | extend: { 6 | colors: { 7 | primary: "#131E27", 8 | secondary: "#222A31", 9 | dimWhite: "#BBBBBB", 10 | fullWhite: "#fff", 11 | card: "#A6A6A6", 12 | skyBlue: "#166EAE", 13 | dustOrange: "#C3A192", 14 | blueGrey: "#7B8389", 15 | }, 16 | }, 17 | }, 18 | plugins: [], 19 | }; 20 | -------------------------------------------------------------------------------- /debian/salsa-ci.yml: -------------------------------------------------------------------------------- 1 | # For more information on what jobs are run see: 2 | # https://salsa.debian.org/salsa-ci-team/pipeline 3 | # 4 | # To enable the jobs, go to your repository (at salsa.debian.org) 5 | # and click over Settings > CI/CD > Expand (in General pipelines). 6 | # In "CI/CD configuration file" write debian/salsa-ci.yml and click 7 | # in "Save Changes". The CI tests will run after the next commit. 8 | --- 9 | include: 10 | - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml 11 | - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml 12 | -------------------------------------------------------------------------------- /debian/mousam.doc-base.ex: -------------------------------------------------------------------------------- 1 | Document: mousam 2 | Title: Debian mousam Manual 3 | Author: 4 | Abstract: This manual describes what mousam is 5 | and how it can be used to 6 | manage online manuals on Debian systems. 7 | Section: unknown 8 | 9 | Format: debiandoc-sgml 10 | Files: /usr/share/doc/mousam/mousam.sgml.gz 11 | 12 | Format: postscript 13 | Files: /usr/share/doc/mousam/mousam.ps.gz 14 | 15 | Format: text 16 | Files: /usr/share/doc/mousam/mousam.text.gz 17 | 18 | Format: HTML 19 | Index: /usr/share/doc/mousam/html/index.html 20 | Files: /usr/share/doc/mousam/html/*.html 21 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | github: #github sponsor id 3 | patreon: # Replace with a single Patreon username 4 | ko_fi: #ko-fi sponsor id 5 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 6 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 7 | liberapay: # Replace with a single Liberapay username 8 | issuehunt: # Replace with a single IssueHunt username 9 | otechie: # Replace with a single Otechie username 10 | lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry 11 | custom: https://www.buymeacoffee.com/ami9838 12 | -------------------------------------------------------------------------------- /website/src/App.jsx: -------------------------------------------------------------------------------- 1 | import Hero from "./components/Hero.jsx"; 2 | import Features from "./components/Features.jsx"; 3 | import Installation from "./components/Installation.jsx"; 4 | import Contribute from "./components/Contribute.jsx"; 5 | import About from "./components/About.jsx"; 6 | import Support from "./components/Support.jsx"; 7 | import Footer from "./components/Footer.jsx"; 8 | import Carousel from "./components/Carousal.jsx"; 9 | function App() { 10 | return ( 11 | <> 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |