~mhysterio/sintel-media/trunk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
#!/bin/bash
# This file is part of Sintel.
#
# Sintel 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, either version 3 of the License, or
# (at your option) any later version.
#
# Sintel is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Sintel.  If not, see <https://www.gnu.org/licenses/>.
#
#
# Gestión de series online
#
# Básicamente este módulo es una copia de anime, pero dirigido a series online.
#
# Si ves una serie en servicios online básicamente o dejas montones de webs como pepecine abiertas por el 
# último episodio para continuar el día que te apetezcas. Al final te juntas con muchas páginas abiertas
# y terminas por cerrarlas, perdiendo así el hilo de por qué episodio te llegabas de tal serie.
#
# Este módulo pretende resolver ese problema

declare -A SERIE
SERIE=( ["id"]="" ["titulo"]="" ["url"]="" ["etiquetas"]="" ["episodio"]="" )

function veronline.info() {
    echo "veronline - Módulo para seguimiento de series online"
    echo
    echo "Maneja series que se ven online."
}

function veronline.add() {
    [[ $# != 2 ]] && ( die $(iargs 2 "título y url") )
    local titulo="$1"
    local url="$2"

    $DEBUG && echo "> veronline.add" > /dev/tty
    db.executeUpdate "insert into veronline (titulo, url, episodio) values (\"$titulo\",\"$url\",1)"	
    $DEBUG && echo "< veronline.add" > /dev/tty
    echo "$ROWID"
}

function veronline.add.info() {
    echo "veronline.add - Añade una serie a la base de datos"
    echo
    echo -e "\tArgumentos: titulo, url"
    echo -e "\tDevuelve el id de la serie en la base de datos"
    echo
    echo "La URL debe indicarse sin la parte http:// o https://"
}

function veronline.getById() {
    [[ $# != 1 ]] && ( die $(iargs 1 "id") )
	local id="$1"

	$DEBUG && echo "> veronline.getById" > /dev/tty
	local res=$(db.executeQuery "select * from veronline where id = $id")
	$DEBUG && echo "< veronline.getById" > /dev/tty
	echo "$res"
}

function veronline.getIdByTitulo() {
    [[ $# != 1 ]] && ( die $(iargs 1 "título") )
	local titulo="$1"

	$DEBUG && echo "> veronline.getByTitulo" > /dev/tty
	local res=$(db.executeQuery "select id from veronline where lower(titulo) = \"${titulo,,}\"")
	# if [[ $? != 0 ]]; then
	# 	echo "SQL: $sql"
	# fi
	$DEBUG && echo "< veronline.getByTitulo" > /dev/tty
	echo "$res"
}

function veronline.getByTitulo() {
    [[ $# != 1 ]] && ( die $(iargs 1 "título") )
	local titulo="$1"

	$DEBUG && echo "> veronline.getByTitulo" > /dev/tty
	local res=$(db.executeQuery "select * from veronline where titulo = \"$titulo\"")
	$DEBUG && echo "< veronline.getByTitulo" > /dev/tty
	echo "$res"
}

function veronline.find() {
	local busqueda="$@"

	local res=$(db.executeQuery "select * from veronline where titulo like \"%${busqueda}%\"")
	echo "$res"	
}

function veronline.list() {

	$DEBUG && echo "> veronline.list" > /dev/tty
	local res=$(db.executeQuery "select * from veronline")
	$DEBUG && echo "< veronline.list" > /dev/tty
	echo "$res"
}

function veronline.delete() {
    [[ $# != 1 ]] && ( die $(iargs 1 "id") )
	local id="$1"

	$DEBUG && echo "> veronline.delete" > /dev/tty
	$(db.executeUpdate "delete from veronline where id = $id")
	$DEBUG && echo "< veronline.delete" > /dev/tty
	echo "$ROWID"
}

function veronline.setEtiquetas() {
    [[ $# != 2 ]] && ( die $(iargs 2 "id y etiquetas") )
	local id="$1"
	local etiquetas="$2"

	$DEBUG && echo "> veronline.setAlias" > /dev/tty
	$(db.executeUpdate "update veronline set etiquetas=\"$etiquetas\" where id = $id")
	$DEBUG && echo "< veronline.setAlias" > /dev/tty
	echo "$ROWID"
}

function veronline.getId() {
    [[ $# != 1 ]] && ( die $(iargs 1 "título") )
	local titulo="$1"

	local id=$(db.executeQuery "select id from veronline where titulo = \"$titulo\"")
}

function veronline.remove() {
    [[ $# != 1 ]] && ( die $(iargs 1 "id") )
	local id="$1"

	db.executeUpdate "delete from veronline where id = $id"
}

function veronline.updateTitulo() {
    [[ $# != 2 ]] && ( die $(iargs 2 "id y título") )
	local id="$1"
	local titulo="$2"

	db.executeUpdate "update veronline set titulo=\"$titulo\" where id = $id"
}

function veronline.updateURL() {
    [[ $# != 2 ]] && ( die $(iargs 2 "id y url") )
	local id="$1"
	local url="$2"

	db.executeUpdate "update veronline set url=\"$url\" where id = $id"
}

function veronline.updateEpisodio() {
    [[ $# != 2 ]] && ( die $(iargs 2 "id y episodio") )
	local id="$1"
	local episodio="$2"

	db.executeUpdate "update veronline set episodio=$episodio where id = $id"
}

function veronline.next() {
    [[ $# != 1 ]] && ( die $(iargs 1 "id") )
	local id="$1"

	db.executeUpdate "update veronline set episodio=episodio+1 where id = $id"
}

function veronline.previous() {
    [[ $# != 1 ]] && ( die $(iargs 1 "id") )
	local id="$1"

	db.executeUpdate "update veronline set episodio=episodio-1 where id = $id"
}

function veronline.parse() {
    [[ $# != 1 ]] && ( die $(iargs 1 "registro") )
	local datos="$1"

	$DEBUG && echo ">Entra en veronline.parse" > /dev/tty
	IFS='|' read -a datosa <<< "$datos"; IFS=" "
	SERIE[id]="${datosa[0]}"
	SERIE[titulo]="${datosa[1]}"
	SERIE[url]="${datosa[2]}"
	SERIE[etiquetas]="${datosa[3]}"
	SERIE[episodio]="${datosa[4]}"
	$DEBUG && echo "<Sale en veronline.parse" > /dev/tty
}

function veronline.parseToFile() {
    [[ $# != 1 ]] && ( die $(iargs 1 "registro") )
	local datos="$1"

	veronline.parse "$datos"

	echo > /tmp/SERIE
	let i=0
	for key in ${!SERIE[@]}; do
		echo "$key ${SERIE[$key]}" >> /tmp/SERIE
	done
}

function veronline.getField() {
    [[ $# != 1 ]] && ( die $(iargs 1 "campo") )
	local field="$1"

	let i=0
	for key in "${!SERIE[@]}"; do
		if [[ "$key" == "$field" ]]; then
			$DEBUG && echo "Coincide con $key. Salimos" > /dev/tty
			break
		fi
		(( i++ ))
	done
	$DEBUG && echo "El valor de i es $i" > /dev/tty
	if [[ $i < ${#SERIE[@]} ]]; then
		local res=$(grep "^$field" /tmp/SERIE | awk '{ print $2 };')
		echo "$res"
	else
		echo "-1"
	fi
}

function veronline.screenAnime() {
	echo "${SERIE[id]} ${SERIE[titulo]} ${SERIE[url]} ${SERIE[etiquetas]} ${SERIE[episodio]}" > /dev/tty
}

function veronline.watch() {
    [[ $# != 1 ]] && ( die $(iargs 1 "id") )
	local id="$1"

	$DEBUG && echo "> veronline.watch" > /dev/tty
	local res=$(db.executeQuery "select * from veronline where id = $id")
	veronline.parse "$res"

	veronline.screenAnime

	x-www-browser http://${SERIE[url]}$(trim ${SERIE[episodio]})
	veronline.next ${SERIE[id]}

	$DEBUG && echo "< veronline.watch" > /dev/tty
}