Videosorveglianza con Raspberry Pi – Parte quinta

closeQuesto articolo è stato pubblicato 4 anni 5 mesi 2 giorni giorni fa quindi alcuni contenuti o informazioni presenti in esso potrebbero non essere più validi.

Per chi si fosse perso le puntate precedenti: Parte prima, Parte seconda, Parte terza, Parte Quarta

In questa puntata affrontiamo un tema quasi di diritto della privacy. Il mio sistema twitta un sacco di immagini quando è attivo, ma a me, una volta viste, non piace molto che queste restino sui server di Twitter, anche se l’account è riservato.

Oggi mettiamo su un pezzetto di codice che, se attivato, cancellerà tutti i tweet dell’utente gestito dal motion control. Ho creato una procedura separata dal resto del sistema (che vedremo tra qualche puntata) perché l’attività, sopratutto se i tweet sono molti, ci mette parecchio tempo, più del minuto di intervallo tra un controllo dei comandi e l’altro.

In definitiva, questo sarà l’algoritmo

  1. mando il comando via DM per cancellare i tweet
  2. il sistema mi risponde che ha impostato la procedura e che sarà eseguita al massimo entro un’ora
  3. viene generato un file specifico che farà da “semaforo” per la procedura che cancella i tweet
  4. ogni ora la procedura che cancella i tweet viene eseguita
  5. se il file di semaforo è presente
    1. i tweet vengono cancellati
    2. viene mandato un messaggio di conferma
    3. il file semaforo viene cancellato
  6. Se il file semaforo non è presente non viene eseguito nulla

Sembra difficile, ma, come il resto del progetto, vi accorgerete che è più facile del previsto.

Create il nuovo file  “rimuovitutti.py”

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
#!/usr/bin/env python2.7
# twitterwin.py by Alex Eames http://raspi.tv/?p=5281
import tweepy
import sys
import datetime
import time
import os
 
file_semaforo_cancella = "/home/pi/tweepy/cancella_tutti_tweet" #file creato per autorizzare la cancellazione dei tweet
file_di_log = "/home/pi/tweepy/controllo_movimento.log" # file di log del sistema di controllo
log = open (file_di_log, "a")
utente_dm = "iltuoutente"
 
# Autenticazione twitter
consumer_key = 'xxx'
consumer_secret = 'xxx'
access_token = 'xxx'
access_token_secret = 'xxx'
 
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
 
api = tweepy.API(auth)
 
# memorizzo il timestamp attuale (cosi' lo metto nei tweet ed evito il blocco dei doppioni)
ts = time.time()
st = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S')
 
#memorizzo quanti tweet cancello e quanti falliscono
cancellati = 0
errore = 0
 
#il file di semaforo che autorizza la cancellazione esiste?
if os.path.exists(file_semaforo_cancella ):
    # per ogni tweet che ho inviato
    for status in tweepy.Cursor(api.user_timeline).items():
        #provo a cancellarlo
        try:
            api.destroy_status(status.id)
            log.write(st + " - Tweet rimosso: " + str(status.id) + "\n")
            cancellati = cancellati + 1
        #se non riesco a cancellarlo registro l'errore
        except:
            log.write(st + " - Tweet NON rimosso: " + str(status.id) + "\n")
            errore = errore + 1
    #rimuovo il file del semaforo 
    os.remove(file_semaforo_cancella)
#invio il DM con il resoconto delle attivita
api.send_direct_message(utente_dm,text="Ho rimosso " + str(cancellati) + " tweet. Ho trovato " + str(errore) + " errori - " + st)
#memorizzo nel log
log.write(st + " - Rimossi " + str(cancellati) + " tweet. Ho trovato " + str(errore) + " errori\n")
 
log.close()

Questo file dovrà essere eseguito ogni ora (nel nostro caso al 30° minuto di ogni ora) dal nostro fido Raspberry, configuriamo quindi il crontab (ricordate come si fa?) aggiungendo queste due righe

1
2
# se attivato il semaforo, cancello tutti i tweet, ogni ora
30 * * * * python /home/pi/tweepy/rimuovitutti.py >/dev/null 2>&1

Per adesso non c’è la gestione di creazione del file via comandi (la implementeremo nelle prossime puntate), provate a creare un file con un contenuto qualsiasi che si chiami “cancella_tutti_tweet” in “/home/pi/tweepy” e vedrete che pian piano tutti i tweet inviati saranno cancellati dal sistema (lo potete vedere dal file di log)

Continua…

2 pensieri riguardo “Videosorveglianza con Raspberry Pi – Parte quinta”

  1. Ottimo progetto ed ottima guida, cercavo una cosa del genere e tu hai tutte le risposte alle mie domande.
    Scrivo in questo post perche’ manca il (continua) al post successivo.
    Complimenti ancora.

Nota importante, da leggere prima di commentare

Questo è un blog scritto per passione, non fornisco quindi risposte di tipo professionale, se avete bisogno di un aiuto tecnico rivolgetevi ad un professionista di fiducia, non offendetevi se mi astengo dal rispondere. Vi ringrazio per la comprensione.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.