changes to icons.

This commit is contained in:
2025-05-14 16:11:02 +00:00
parent aca18f18f4
commit 1613877771
22 changed files with 417 additions and 98 deletions

1
.gitignore vendored
View File

@ -9,7 +9,6 @@ coverage
# Production
dist
dist_electron
build
# Environment files
.env

219
README.md
View File

@ -1,100 +1,137 @@
# 🎙️ Podcast Recorder
# 🎙️ Podcast Upptökur
A modern, user-friendly desktop application for recording and managing podcast episodes. Built with Electron and React, this application provides a seamless experience for podcast creators.
Nútímaleg, notendavæn skjáborðsforrit til að taka upp og halda utan um hlaðvarpsþætti. Byggt með Electron og React, þetta forrit veitir hlaðvarpshöfundum góða upplifun.
![Podcast Recorder Screenshot](screenshot.png)
![Podcast Upptökur skjámynd](screenshot.png)
## ✨ Features
## ✨ Eiginleikar
### 🎯 Core Functionality
- **High-Quality Audio Recording**
- Professional-grade audio capture
- Configurable bitrate, sample rate, and channels
- Real-time audio monitoring
- Automatic backup during recording
### 🎯 Helstu eiginleikar
- **Hágæða hljóðupptaka**
- Hágæða hljóðupptaka
- Stillanlegur bitahraði, sýnatíðni og rásir
- Rauntímavöktun hljóðs
- Sjálfvirk afritun við upptöku
### 🎛️ Audio Settings
- **Customizable Recording Parameters**
- Bitrate: Up to 256kbps
- Sample Rate: Up to 48kHz
- Channel Configuration: Mono/Stereo
- Microphone Selection
### 🎛️ Hljóðstillingar
- **Sérsniðnar upptökubreytur**
- Bitahraði: Allt að 256kbps
- Sýnatíðni: Allt að 48kHz
- Rásastillingar: Einóma/Stereo
- Val á hljóðnema
### 💾 File Management
- **Organized Storage**
- User-specific directories
- Automatic file naming
- Backup system during recording
- Easy file organization
### 💾 Skráastjórnun
- **Skipulagt geymsla**
- Notendamiðaðar möppur
- Sjálfvirk skráanöfn
- Afritakerfi við upptöku
- Auðveld skráaskipulagning
### 🔄 Upload Integration
- **Seamless Publishing**
- Direct upload to podcast hosting
- Progress tracking
- Automatic metadata handling
- Support for multiple environments
### 🔄 Upphleðsla
- **Auðveld birtingarferli**
- Bein upphleðsla á hlaðvarpsvistun
- Framvindueftirfylgni
- Sjálfvirk lýsigagnavinnsla
- Stuðningur fyrir mismunandi umhverfi
### 🛠️ Technical Features
- **Built with Modern Technologies**
- Electron for cross-platform support
- React for responsive UI
- FFmpeg integration for audio processing
- Secure file handling
### 🛠️ Tæknilegir eiginleikar
- **Byggt með nútímatækni**
- Electron fyrir stuðning á mismunandi stýrikerfum
- React fyrir hraðvirkt notendaviðmót
- FFmpeg samþætting fyrir hljóðvinnslu
- Örugg skráameðhöndlun
## 🚀 Getting Started
## 🚀 Hafist handa
### Prerequisites
- Node.js (v14 or higher)
- npm or yarn
- FFmpeg (automatically installed by the application)
### Forsendur
- Node.js (v14 eða nýrra)
- npm eða yarn
- FFmpeg (sjálfkrafa uppsett af forritinu)
### Installation
### Uppsetning
1. Clone the repository:
#### Windows
1. Sæktu nýjasta útgáfuna af forritinu:
- Farðu á [útgáfusíðuna](https://github.com/yourusername/podcast-upptokur/releases)
- Sæktu `PodcastUpptokur-Setup-x.x.x.exe` skrána
2. Keyrðu uppsetningarforritið:
- Opnaðu niðurhalið skjalið
- Fylgdu leiðbeiningum á skjánum til að ljúka uppsetningunni
- Forritið mun sjálfkrafa setja upp allar nauðsynlegar einingar (þ.m.t. FFmpeg)
3. Opnaðu forritið:
- Smelltu á `Podcast Upptökur` á skjáborðinu eða í upphafsvalmyndinni
#### Linux
1. Sæktu nýjasta AppImage skrána:
- Farðu á [útgáfusíðuna](https://github.com/yourusername/podcast-upptokur/releases)
- Sæktu `Podcast Upptökur-x.x.x.AppImage` skrána
2. Gerðu AppImage skrána keyranlega:
```bash
chmod +x "Podcast Upptökur-x.x.x.AppImage"
```
3. Keyrðu forritið:
```bash
./"Podcast Upptökur-x.x.x.AppImage"
```
4. (Valfrjálst) Settu upp forritið í kerfisvísi:
```bash
./"Podcast Upptökur-x.x.x.AppImage" --appimage-desktop-install
```
#### Fyrir þróendur
1. Afritaðu geymsluna:
```bash
git clone https://github.com/yourusername/podcast-recorder.git
cd podcast-recorder
git clone https://github.com/yourusername/podcast-upptokur.git
cd podcast-upptokur
```
2. Install dependencies:
2. Settu upp nauðsynlega pakka:
```bash
npm install
```
3. Start the development server:
3. Ræstu þróunarþjóninn:
```bash
npm run dev
```
4. Build the application:
4. Byggðu forritið:
```bash
npm run build
```
## 🎨 Usage
## 🎨 Notkun
1. **Launch the Application**
- Start the application
- Enter your email for user-specific storage
1. **Ræstu forritið**
- Opnaðu forritið
- Sláðu inn netfangið þitt fyrir notendamiðað geymslurými
2. **Configure Settings**
- Select your microphone
- Adjust audio settings
- Choose save directory
2. **Stilltu stillingar**
- Veldu hljóðnemann þinn
- Aðlagaðu hljóðstillingar
- Veldu vistunarmöppuna
3. **Start Recording**
- Click the record button
- Monitor audio levels
- Use the pause feature when needed
3. **Byrjaðu upptöku**
- Smelltu á upptökuhnappinn
- Fylgstu með hljóðstiginu
- Notaðu hlé þegar þörf er á
4. **Save and Upload**
- Stop recording when finished
- Review the recording
- Upload to your podcast hosting platform
4. **Vistaðu og hladdu upp**
- Stöðvaðu upptöku þegar henni er lokið
- Farðu yfir upptökuna
- Hladdu upp á hlaðvarpshýsinguna þína
## 🔧 Configuration
## 🔧 Stillingar
### Audio Settings
### Hljóðstillingar
```json
{
"audioSettings": {
@ -105,19 +142,19 @@ npm run build
}
```
### Directory Structure
### Möppustrúktúr
```
PodcastUpptokur/
└── [email]/
├── recording_name.webm
└── recording_name_saved.webm
└── [netfang]/
├── upptökuheiti.webm
└── upptökuheiti_saved.webm
```
## 🛠️ Development
## 🛠️ Þróun
### Project Structure
### Verkefnauppbygging
```
podcast-recorder/
podcast-upptokur/
├── src/
│ ├── components/
│ ├── services/
@ -128,34 +165,34 @@ podcast-recorder/
└── public/
```
### Available Scripts
- `npm run dev` - Start development server
- `npm run build` - Build for production
- `npm run package` - Package the application
### Tiltækar skipanir
- `npm run dev` - Ræsa þróunarþjón
- `npm run build` - Byggja fyrir framleiðslu
- `npm run package` - Pakka forritinu
## 🤝 Contributing
## 🤝 Þátttaka
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
1. Forkaðu geymsluna
2. Búðu til eiginleikagrein þína (`git checkout -b feature/ÆðislegurEiginleiki`)
3. Staðfestu breytingarnar þínar (`git commit -m 'Bæta við ÆðislegumEiginleika'`)
4. Ýttu á greinina (`git push origin feature/ÆðislegurEiginleiki`)
5. Opnaðu Pull Request
## 📝 License
## 📝 Leyfi
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
Þetta verkefni er háð MIT leyfinu - sjá [LICENSE](LICENSE) skrána fyrir nánari upplýsingar.
## 🙏 Acknowledgments
## 🙏 Þakklæti
- FFmpeg for audio processing
- Electron team for the framework
- React team for the UI library
- All contributors and users
- FFmpeg fyrir hljóðvinnslu
- Electron teymið fyrir umgjörðina
- React teymið fyrir notendaviðmóts safnið
- Allir þátttakendur og notendur
## 📞 Support
## 📞 Stuðningur
For support, please open an issue in the GitHub repository or contact the maintainers.
Fyrir stuðning, vinsamlegast opnaðu málefni í Gitea geymslunni eða hafðu samband við umsjónarmenn.
---
Made with ❤️ by [Your Name/Organization]
Þróað með ❤️ af Gunnar Ásgeirsson og Ólafur Búi Ólafsson fyrir Háskólann á Akureyri

11
build-linux.sh Normal file → Executable file
View File

@ -2,9 +2,14 @@
echo "Building Linux target (AppImage)..."
# It's good practice to navigate to the script's directory
# in case it's called from elsewhere, though for this simple case it might not be strictly necessary.
# cd "$(dirname "$0")"
# Generate icons
echo "Generating icons..."
./scripts/generate-icons.sh
if [ $? -ne 0 ]; then
echo "Icon generation failed!"
exit 1
fi
echo "Running npm install (ensures Linux dependencies)..."
npm install

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 767 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

View File

@ -0,0 +1,206 @@
/* XPM */
static const char *podcast_upptokur[] = {
/* columns rows colors chars-per-pixel */
"32 32 168 2 ",
" c #9F1DD1",
". c #A41DD3",
"X c #862CC2",
"o c #8D2EC6",
"O c #9424CA",
"+ c #9A26CE",
"@ c #932DCA",
"# c #9431CA",
"$ c #9B33CE",
"% c #9D27D0",
"& c #9E2AD0",
"* c #A421D4",
"= c #A42CD3",
"- c #AB2CD7",
"; c #AF2CD9",
": c #B226DB",
"> c #B52EDC",
", c #B92ADF",
"< c #A336D2",
"1 c #AC34D7",
"2 c #A33AD2",
"3 c #AB39D6",
"4 c #AD30D8",
"5 c #AE3AD8",
"6 c #B434DC",
"7 c #B934DF",
"8 c #B43BDB",
"9 c #B93DDE",
"0 c #BE23E2",
"q c #BD2EE1",
"w c #BD35E1",
"e c #BC3DE0",
"r c #C12CE3",
"t c #C82DE7",
"y c #CC2DE9",
"u c #C334E4",
"i c #C03EE2",
"p c #C93DE7",
"a c #CC36E9",
"s c #CC3AE9",
"d c #D43BED",
"f c #D93BF0",
"g c #A742D4",
"h c #B342DB",
"j c #BA43DE",
"k c #B64DDC",
"l c #BC4DDF",
"z c #AE5CD7",
"x c #B653DC",
"c c #B362DA",
"v c #B964DD",
"b c #B368DA",
"n c #BC6BDE",
"m c #BD41E0",
"M c #BE53E0",
"N c #BF6CE0",
"B c #C542E5",
"V c #C845E6",
"C c #C64CE5",
"Z c #CB4DE7",
"A c #CC44E9",
"S c #CE4FE9",
"D c #D346ED",
"F c #D44AED",
"G c #D848EF",
"H c #C354E3",
"J c #C058E1",
"K c #CE55E9",
"L c #CD5DE8",
"P c #D151EB",
"I c #D15CEB",
"U c #DB43F1",
"Y c #DA49F1",
"T c #DC58F1",
"R c #E34CF5",
"E c #EC4FFA",
"W c #F150FD",
"Q c #C565E3",
"! c #C860E5",
"~ c #C36CE2",
"^ c #C86EE5",
"/ c #D465EC",
"( c #D26EEA",
") c #DA68EF",
"_ c #C57EE3",
"` c #CE77E8",
"' c #CF7AE8",
"] c #D270EB",
"[ c #D977EE",
"{ c #D57DEC",
"} c #DF7FF1",
"| c #CB85E6",
" . c #C588E3",
".. c #CB8BE6",
"X. c #D583EC",
"o. c #DB80EF",
"O. c #D389EA",
"+. c #CB91E6",
"@. c #D495EA",
"#. c #D993ED",
"$. c #DA9EED",
"%. c #DD86F0",
"&. c #DE92F0",
"*. c #E385F3",
"=. c #E58BF4",
"-. c #E495F3",
";. c #E892F6",
":. c #E29BF2",
">. c #EB9FF7",
",. c #D5A4EB",
"<. c #DEAEEF",
"1. c #DEB9EF",
"2. c #DFA2F0",
"3. c #EAA4F7",
"4. c #E3ADF2",
"5. c #EAACF6",
"6. c #E4B5F2",
"7. c #E9B4F5",
"8. c #E3BAF1",
"9. c #ECBEF6",
"0. c #E7C2F3",
"q. c #E9C0F5",
"w. c #EBCCF5",
"e. c #EEC0F8",
"r. c #F4C7FA",
"t. c #F3CDFA",
"y. c #EDD2F6",
"u. c #F1D2F9",
"i. c #F5DBFA",
"p. c #F5D8FB",
"a. c #F1DDF8",
"s. c #F5DFFA",
"d. c #F2D9F9",
"f. c #F8DBFC",
"g. c #F8DCFC",
"h. c #F4E1FA",
"j. c #F7E5FB",
"k. c #F5E6FA",
"l. c #F4E4FA",
"z. c #F3E2F9",
"x. c #F8E3FC",
"c. c #F8E6FC",
"v. c #F7EAFB",
"b. c #F7ECFB",
"n. c #F8EDFB",
"m. c #F9E8FC",
"M. c #FAEBFC",
"N. c #F8EAFC",
"B. c #F8ECFC",
"V. c #F9EDFC",
"C. c #F8EEFC",
"Z. c #F9EEFC",
"A. c #F9EFFC",
"S. c #FAEEFD",
"D. c #FAEFFD",
"F. c #FAF1FD",
"G. c #FBF1FD",
"H. c #F9F2FC",
"J. c #FAF2FC",
"K. c #FCF3FE",
"L. c #FCF4FD",
"P. c #FCF7FE",
"I. c #FBF6FD",
"U. c #FDF9FE",
"Y. c #FDFAFE",
"T. c #FDFBFE",
"R. c white",
"E. c #FFFFFF",
/* pixels */
"W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W ",
"E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E ",
"E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E ",
"R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R ",
"R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R ",
"R R R R R R R Y R R R R R R R R R R R R R R R R R R R R R R R Y ",
"Y Y Y Y Y Y Y Y Y Y Y Y U f f U U f f Y Y Y Y Y Y Y Y Y Y Y Y Y ",
"Y Y Y Y Y Y Y Y G Y Y d T >.t.g.f.r.;.Y d Y Y G Y Y Y Y Y Y Y Y ",
"D D D D D D D D F D d 3.U.i.3.*.*.5.x.K.=.d F D D D D D D D D D ",
"D D D D D D D D D D t.m.) y a F F y y } U.5.s D D D D D D D D D ",
"A A A A A A A A s e.i.s s 5.m.D.D.c.-.t P H.:.a A A A A A A A A ",
"A A A A A A A u o.D.A A c.i.[ S K %.D.t.u / P.I p A A A A A A A ",
"B B B B B B B u d.&.r u.9.u r K Z r B s.5.0 9.7.u V B B B B B B ",
"B B B B B B i L D.V ] m.B u :.R.P.{ q L H.C ( k.B B B B B B B B ",
"i i i i i B w { s., 4.6., C D.R.R.w.e w d.X.B D.H e B i i i i i ",
"e e e e e m 7 X.d.: q.2.> m d.R.R.6.7 7 w.#.7 v.! 7 m e e e e e ",
"9 9 9 9 9 9 6 ` h.: 4.8.> 9 H 4.$.j 9 6 d.' j n.H 6 9 9 9 9 9 9 ",
"8 8 8 8 8 8 6 M n.j Q D.j 6 J #.O.l ; Q D.8 ^ k.8 8 8 8 8 8 8 8 ",
"8 8 8 8 8 8 8 4 y.@.. w.0.h D.R.R.w.8 k.$.. 0.<.- 8 8 8 8 8 8 8 ",
"5 5 5 5 5 5 5 - ~ H.h 5 8.~ U.U.R.a.~ 6.* ~ H.k 1 5 5 5 5 5 5 5 ",
"3 3 3 3 3 3 3 3 = <.z.3 . x P.R.R.a.3 x P.| = 3 3 3 3 3 3 3 3 ",
"3 3 3 3 3 3 3 3 3 = 8.P.N 3 b.R.R.w.= ..R.@.= 3 3 3 3 3 3 3 3 3 ",
"< < < < < < < < < < & ..P.v w.R.R.,._ H.n % 2 < < < < < < < < < ",
"< < < < < < < < < < < + g 2 1.R.R.+.2 2 + < < < < < < < < < < < ",
"$ $ $ $ $ $ $ $ $ $ $ $ $ O .R.R.c O $ $ $ $ $ $ $ $ $ $ $ $ $ ",
"$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ b z @ $ $ $ $ $ $ $ $ $ $ $ $ $ $ ",
"# # # # # # # # # # # # # # # O O # # # # # # # # # # # # # # # ",
"# # # # # # # # # # # # # @ # # # @ @ # # # # # # # # # # # # # ",
"o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o ",
"o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o ",
"X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ",
"X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X "
};

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 767 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@ -0,0 +1,11 @@
[Desktop Entry]
Type=Application
Name=Podcast Upptökur
Comment=Record and manage podcast episodes
Exec=AppRun --no-sandbox %F
Icon=podcast-upptokur
Categories=AudioVideo;Audio;Recorder;
Terminal=false
StartupWMClass=Podcast Upptökur
StartupNotify=true
MimeType=audio/x-wav;audio/mpeg;

View File

@ -47,9 +47,19 @@
"icon": "public/images/icon.png"
},
"linux": {
"target": "AppImage",
"icon": "public/images/icon.png",
"category": "AudioVideo;Audio;Recorder;"
"target": ["AppImage"],
"icon": "build/icons",
"category": "AudioVideo;Audio;Recorder;",
"executableName": "podcast-upptokur",
"artifactName": "Podcast Upptökur-${version}.AppImage",
"desktop": {
"Name": "Podcast Upptökur",
"Comment": "Record and manage podcast episodes",
"Categories": "AudioVideo;Audio;Recorder;",
"Icon": "podcast-upptokur",
"StartupWMClass": "Podcast Upptökur",
"X-AppImage-Name": "Podcast Upptökur"
}
},
"nsis": {
"oneClick": false,

51
scripts/generate-icons.sh Executable file
View File

@ -0,0 +1,51 @@
#!/bin/bash
# Move to the project root directory
cd "$(dirname "$0")/.." || exit 1
# Create icons directory if it doesn't exist
mkdir -p build/icons
mkdir -p build/icons/hicolor/16x16/apps
mkdir -p build/icons/hicolor/32x32/apps
mkdir -p build/icons/hicolor/48x48/apps
mkdir -p build/icons/hicolor/64x64/apps
mkdir -p build/icons/hicolor/128x128/apps
mkdir -p build/icons/hicolor/256x256/apps
mkdir -p build/icons/hicolor/512x512/apps
# The base name for the icon files
ICON_NAME="podcast-upptokur"
# Set the convert command path
CONVERT="/usr/bin/convert-im6.q16"
echo "Generating icons for Linux..."
# Generate different sizes from the original icon
"$CONVERT" public/images/icon.png -resize 16x16 "build/icons/${ICON_NAME}_16x16.png"
"$CONVERT" public/images/icon.png -resize 32x32 "build/icons/${ICON_NAME}_32x32.png"
"$CONVERT" public/images/icon.png -resize 48x48 "build/icons/${ICON_NAME}_48x48.png"
"$CONVERT" public/images/icon.png -resize 64x64 "build/icons/${ICON_NAME}_64x64.png"
"$CONVERT" public/images/icon.png -resize 128x128 "build/icons/${ICON_NAME}_128x128.png"
"$CONVERT" public/images/icon.png -resize 256x256 "build/icons/${ICON_NAME}_256x256.png"
"$CONVERT" public/images/icon.png -resize 512x512 "build/icons/${ICON_NAME}_512x512.png"
# Create a copy of the 512x512 icon as the main icon
cp "build/icons/${ICON_NAME}_512x512.png" "build/icons/${ICON_NAME}.png"
# Also create XPM version for legacy systems
"$CONVERT" "build/icons/${ICON_NAME}_32x32.png" "build/icons/${ICON_NAME}.xpm"
# Copy icons to hicolor structure (for better Linux integration)
cp "build/icons/${ICON_NAME}_16x16.png" "build/icons/hicolor/16x16/apps/${ICON_NAME}.png"
cp "build/icons/${ICON_NAME}_32x32.png" "build/icons/hicolor/32x32/apps/${ICON_NAME}.png"
cp "build/icons/${ICON_NAME}_48x48.png" "build/icons/hicolor/48x48/apps/${ICON_NAME}.png"
cp "build/icons/${ICON_NAME}_64x64.png" "build/icons/hicolor/64x64/apps/${ICON_NAME}.png"
cp "build/icons/${ICON_NAME}_128x128.png" "build/icons/hicolor/128x128/apps/${ICON_NAME}.png"
cp "build/icons/${ICON_NAME}_256x256.png" "build/icons/hicolor/256x256/apps/${ICON_NAME}.png"
cp "build/icons/${ICON_NAME}_512x512.png" "build/icons/hicolor/512x512/apps/${ICON_NAME}.png"
# For macOS, we would typically create an .icns file, but that's not needed for Linux
# and requires additional tools which may not be available on all systems.
echo "Icon generation complete!"