Skip to content

Commit

Permalink
Merge pull request #63 from CerebruxCode/develop
Browse files Browse the repository at this point in the history
Prep 2.1 release
  • Loading branch information
cerebrux authored Sep 21, 2020
2 parents a91febc + bc6ff73 commit 9fe616a
Show file tree
Hide file tree
Showing 3 changed files with 117 additions and 32 deletions.
15 changes: 7 additions & 8 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -1,26 +1,25 @@

Shelldio - Ακούστε Ραδιοφωνικούς σταθμούς στο τερματικό σας

(c)2018-2020 bash_radio.sh | Vasilis Niakas and Contributors.
(c)2020 Shelldio | Salih Emin, JohnGavr and Contributors.

(c)2020 Vasilis Niakas, Salih Emin , JohnGavr and Contributors.

Shelldio is free software and published under the
terms of the GNU General Public License v3.0
terms of the GNU General Public License v3.0

-- AUTHORS and CONTRIBUTORS --
-- AUTHORS and CONTRIBUTORS --


Σημείωση:
Εάν έχετε σχόλια, διορθώσεις ή κάτι άλλο, παρακαλώ διαβάστε τις οδηγίες του αρχείου CONTRIBUTING

Μην επικοινωνείτε άμεσα με τα άτομα που αναφέρονται εδώ.

Main Authors
Authors
~~~~~~~~~~~~
JohnGavr : https://github.com/JohnGavr
Salih Emin : https://github.com/cerebrux
Vasilis Niakas : https://github.com/billniakas

Contributors
~~~~~~~~~~~~
Panagiotis Georgiadis : https://github.com/drpaneas
Panagiotis Georgiadis [General & macOS] : https://github.com/drpaneas
Zois Pagoulatos [macOS] : https://github.com/zoispag
12 changes: 6 additions & 6 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,16 @@

1. **Issue**: Ανοίγετε ένα [issue](https://github.com/CerebruxCode/shelldio/issues) στο οποίο περιγράφετε τι θέλετε να κάνετε και γιατί θα πρέπει να ενσωματωθεί η αλλαγή που σκοπεύετε να στείλετε
2. **Fork**: Κάνετε fork το αποθετήριο στον λογαριασμό σας και έπειτα clone στον υπολογιστή σας.
3. **Code**: Κάνετε _git checkout develop_ όπου και τροποποιείτε τα σημεία του κώδικα που σας ενδιαφέρουν για υποβολή. Το βήμα αυτό είναι κρήσιμο διότι δεν θα μπορέσουμε να δεχτούμε αλλαγές στο **stable** branch αλλά μονο στο **develop**.
3. **Code**: Κάνετε _git checkout develop_ όπου και τροποποιείτε τα σημεία του κώδικα που σας ενδιαφέρουν για υποβολή. Το βήμα αυτό είναι κρήσιμο διότι δεν θα μπορέσουμε να δεχτούμε αλλαγές στο **stable** branch αλλά μόνο στο **develop**.
4. **Push**: Μόλις θεωρείτε ότι έχετε ολοκληρώσει τις αλλαγές, κάνετε commit χρησιμοποιώντας τον οδηγό στον παρακάτω πίνακα (π.χ. git commit -m "[FIX] Διόρθωση του issue #Αριθμός_issue") όπου ο _αριθμός issue_ (σημειώστε το μαζί με το σύμβολο #) είναι ο αριθμός που αντιστοιχεί σε αυτό που ανοίξατε στο **βήμα 1**.

|Σχόλιο | Περιγραφή | Παράδειγμα git commit|
| --- | --- | --- |
|[REFACTOR]| αλλαγές στην δομή|`git commit -m “[REFACTOR] χρήση func αντί loop`
|[FIX] | διόρθωση ανακοινωμένου issue bugfix | `git commit -m “[FIX] Διόρθωση του issue #Αριθμός_issue`
|[FEATURE] | Προσθήκη νέου χαρακτηριστικού | `git commit -m “[FEATURE] Προσθήκη που ζητήθηκε στο #Αριθμός_issue`
|[DOC] | αλλαγή στα σχόλια, μηνύματα, κείμενο |`git commit -m “[DOC] διόρθωση επεξήγησης`
|[REFACTOR]| αλλαγές στην δομή|`git commit -m “[REFACTOR] χρήση func αντί loop`|
|[FIX] | διόρθωση ανακοινωμένου issue bugfix | `git commit -m “[FIX] Διόρθωση του issue #Αριθμός_issue`|
|[FEATURE] | Προσθήκη νέου χαρακτηριστικού | `git commit -m “[FEATURE] Προσθήκη που ζητήθηκε στο #Αριθμός_issue`|
|[DOC] | αλλαγή στα σχόλια, μηνύματα, κείμενο |`git commit -m “[DOC] διόρθωση επεξήγησης`|

**Συμβουλή**: _Να κάνετε συχνά commits που ξεχωρίζουν κάθε αλλαγή ώστε να είναι ευδιάκριτος ο σκοπός της αλλαγή (τι αλλάζω και γιατί το αλλάζω)_

5. **Pull request**: Τέλος αφού κάνετε _git push origin develop_, μπορείτε να μας στείλετε το _pull request_ υποβάλλοντας έτσι τις όποιες αλλαγές.
Expand Down
122 changes: 104 additions & 18 deletions shelldio.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,46 @@
#
#
# Shelldio - ακούστε online ραδιόφωνο από το τερματικό
# Copyright (c)2018 Vasilis Niakas and Contributors
# Shelldio was based on bash_radio.sh (c)2018-2020 Vasilis Niakas and Contributors.
#
# (c)2020 Shelldio | Salih Emin, JohnGavr and Contributors.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation version 3 of the License.
#
# Please read the file LICENSE and README for more information.
#
#

### Variable List
all_stations="$HOME/.shelldio/all_stations.txt"
my_stations="$HOME/.shelldio/my_stations.txt"

### Functions List

validate_csv() {
awk 'BEGIN{FS=","}!n{n=NF}n!=NF{failed=1;exit}END{print !failed}' "$1"
}

validate_station_lists() {
if [ -f "$all_stations" ]; then
if [[ $(validate_csv "$all_stations") -eq 0 ]]; then
echo "Πρόβλημα: Η λίστα σταθμών: $all_stations δεν είναι έγκυρη"
echo "Εκτέλεσε shelldio --fresh για να κατεβάσεις τη λίστα εκ νέου"
exit 1
fi
fi

if [ -f "$my_stations" ]; then
if [[ $(validate_csv "$my_stations") -eq 0 ]]; then
echo "Πρόβλημα: Η λίστα σταθμών: $my_stations δεν είναι έγκυρη"
echo "Εκτέλεσε shelldio --reset για να διαγράψεις τη λίστα αγαπημένων"
echo "Στη συνέχεια πρόσθεσε ξανά τους αγαπημένους σου σταθμούς"
exit 1
fi
fi
}

# Μήνυμα καλωσορίσματος

welcome_screen() {
Expand All @@ -32,7 +56,7 @@ welcome_screen() {
echo '| [___________________________________I__] |'
echo '| ####################### (_) (_) | '
echo "|_______________ Shelldio _________________|"
echo "| v2.0.0 |"
echo "| v2.1.0 |"
echo "| |"
echo "| Ακούστε τους αγαπημένους σας |"
echo "| σταθμούς από το τερματικό |"
Expand All @@ -52,16 +76,17 @@ option_detail() {
Αν θέλουμε να ξεκινήσουμε το shelldio με όρισμα τότε αυτό μπορεί να είναι ένα απο τα παρακάτω:
-a, --add : Δημιουργεί το αρχείο ~/.shelldio/my_stations.txt
στο οποίο μεταφέρει τους αγαπημένους σας σταθμούς
-f, --fresh : Κατεβάζει εκ νέου την λίστα των σταθμών
με επικαιροποιημένους ραδιοφωνικούς σταθμούς
-a, --add : Δημιουργεί το αρχείο $my_stations
στο οποίο μεταφέρει τους αγαπημένους σας σταθμούς
-f, --fresh : Κατεβάζει εκ νέου την λίστα των σταθμών με επικαιροποιημένους ραδιοφωνικούς σταθμούς
-h, --help: Εμφανίζει πληροφορίες για την χρήση της εφαρμογής
-l, --list: Εμφανίζει την λίστα με τους ραδιοφωνικούς σταθμούς.
-l, --list: Εμφανίζει την λίστα με τους ραδιοφωνικούς σταθμούς
-r, --remove: Διαγράφει σταθμούς της επιλογής σας από το my_stations.txt
-r, --remove: Διαγράφει σταθμούς της επιλογής σας από το $my_stations
--reset: Καθαρίζει τη λίστα αγαπημένων, διαγράφοντας το αρχείο $my_stations
EOF
}

Expand Down Expand Up @@ -89,11 +114,9 @@ add_stations() {
echo "Έξοδος..."
exit 0
elif [ "$input_station" -gt 0 ] && [ "$input_station" -le $num ]; then #έλεγχος αν το input είναι μέσα στο εύρος της λίστας των σταθμών
station=$(sed "${input_station}q;d" "$stations")
station=$(sed "${input_station}q;d" "$all_stations")
stathmos_name=$(echo "$station" | cut -d "," -f1)
stathmos_url=$(echo "$station" | cut -d "," -f2)
#stathmos_name=$(< "$all_stations" head -n$(( "$input_station" )) | tail -n1 | cut -d "," -f1)
#stathmos_url=$(< "$all_stations" head -n$(( "$input_station" )) | tail -n1 | cut -d "," -f2)
echo "$stathmos_name,$stathmos_url" >>"$my_stations"
echo " Προστέθηκε ο σταθμός $stathmos_name."
else
Expand All @@ -118,9 +141,9 @@ remove_station() {
echo "Έξοδος..."
exit 0
elif [ "$remove_station" -gt 0 ] && [ "$remove_station" -le $num ]; then #έλεγχος αν το input είναι μέσα στο εύρος της λίστας των σταθμών
stathmos_name=$(head <"$HOME/.shelldio/my_stations.txt" -n$(("$remove_station")) | tail -n1 | cut -d "," -f1)
stathmos_url=$(head <"$HOME/.shelldio/my_stations.txt" -n$(("$remove_station")) | tail -n1 | cut -d "," -f2)
sed -i "$remove_station""d" "$HOME/.shelldio/my_stations.txt"
station=$(sed "${remove_station}q;d" "$my_stations")
stathmos_name=$(echo "$station" | cut -d "," -f1)
grep -v "$stathmos_name" "$HOME/.shelldio/my_stations.txt" >"$HOME/.shelldio/my_stations.tmp" && mv "$HOME/.shelldio/my_stations.tmp" "$HOME/.shelldio/my_stations.txt"
echo "Διαγράφηκε ο σταθμός $stathmos_name."
else
echo "Αριθμός εκτός λίστας"
Expand All @@ -129,6 +152,53 @@ remove_station() {
fi
}

mpv_msg() {
if grep debian /etc/os-release &>/dev/null; then
echo "Τρέξτε 'sudo apt install mpv' για να εγκαταστήσετε τον player"
elif grep fedora /etc/os-release &>/dev/null; then
echo "Τρέξτε 'sudo dnf -y install mpv' για να εγκαταστήσετε τον player"
elif grep suse /etc/os-release &>/dev/null; then
echo "Τρέξτε 'sudo zypper in mpv' για να εγκαταστήσετε τον player"
elif grep centos /etc/os-release &>/dev/null; then
echo "Τρέξτε 'sudo yum -y install mpv' για να εγκαταστήσετε τον player"
elif uname -a | grep Darwin &>/dev/null; then
echo "Τρέξτε 'sudo brew install mpv' για να εγκαταστήσετε τον player"
elif uname -a | grep BSD &>/dev/null; then
echo "Τρέξτε 'sudo pkg install mpv' για να εγκαταστήσετε τον player"
else
echo "Δεν μπορέσαμε να εντοπίσουμε το λειτουργικό σας σύστημα."
echo "Παρακαλούμε επισκεφτείτε τον παρακάτω σύνδεσμο για οδηγίες εγκατάστασης του MPV"
echo "https://mpv.io/installation/"
fi
}

reset_favorites() {
if [ ! -f "$my_stations" ]; then
echo "Μη έγκυρη επιλογή. Το αρχείο αγαπημένων δεν υπάρχει."
exit 1
fi

while true; do
read -rp "Θες σίγουρα να διαγράψεις το αρχείο αγαπημένων; (y/n)" yn
case $yn in
[Yy]*)
rm -f "$my_stations"
break
;;
[Nn]*) exit ;;
*) echo "Παρακαλώ απαντήστε με y (ναι) ή n (όχι)" ;;
esac
done

if [ -f "$my_stations" ]; then
echo "Απέτυχε η διαγραφή του αρχείου αγαπημένων"
exit 1
fi

echo "Το αρχείο αγαπημένων διαγράφτηκε επιτυχώς"
exit 0
}

### Λίστα με τις επιλογές σαν 1ο όρισμα shelldio --[option]

while [ "$1" != "" ]; do
Expand Down Expand Up @@ -163,21 +233,32 @@ while [ "$1" != "" ]; do
;;
-a | --add)
welcome_screen
validate_station_lists
add_stations
validate_station_lists
exit 0
;;
-r | --remove)
welcome_screen
remove_station
exit 0
;;
--reset)
reset_favorites
exit 0
;;
-f | --fresh)
welcome_screen
echo "Γίνεται λήψη του αρχείου των σταθμών από το αποθετήριο."
sleep 1
curl -sL https://raw.githubusercontent.com/CerebruxCode/shelldio/stable/.shelldio/all_stations.txt --output "$HOME/.shelldio/all_stations.txt"
exit 0
;;
*)
echo "Λάθος επιλογή."
echo "Εκτέλεσε shelldio --help για να δεις τις δυνατές επιλογές!"
exit 0
;;
esac
done

Expand All @@ -189,15 +270,19 @@ if [[ $player = 1 ]]; then
echo "Έλεγχος προαπαιτούμενων για το Shelldio"
sleep 1
echo -e "Το Shelldio χρειάζεται το MPV player αλλά δεν βρέθηκε στο σύστημά σας.\nΠαρακαλούμε εγκαταστήστε το MPV πριν τρέξετε το Shelldio"
mpv_msg
exit 1
fi
for binary in curl info sleep clear killall; do
for binary in grep curl info sleep clear killall; do
if ! command -v $binary &>/dev/null; then
echo -e "Το Shelldio χρειάζεται το '$binary'\nΠαρακαλούμε εγκαταστήστε το πριν τρέξετε το Shelldio"
exit 1
fi
done

# Έλεγχος εγκυρότητας λίστας σταθμών
validate_station_lists

while true; do
terms=0
trap ' [ $terms = 1 ] || { terms=1; kill -TERM -$$; }; exit' EXIT INT HUP TERM QUIT
Expand Down Expand Up @@ -256,8 +341,9 @@ while true; do
echo "Έξοδος..."
exit 0
elif [ "$input_play" -gt 0 ] && [ "$input_play" -le $num ]; then #έλεγχος αν το input είναι μέσα στο εύρος της λίστας των σταθμών
stathmos_name=$(head <"$stations" -n$(("$input_play")) | tail -n1 | cut -d "," -f1)
stathmos_url=$(head <"$stations" -n$(("$input_play")) | tail -n1 | cut -d "," -f2)
station=$(sed "${input_play}q;d" "$stations")
stathmos_name=$(echo "$station" | cut -d "," -f1)
stathmos_url=$(echo "$station" | cut -d "," -f2)
break
else
echo "Αριθμός εκτός λίστας"
Expand Down

0 comments on commit 9fe616a

Please sign in to comment.