Contenu | Rechercher | Menus

Annonce

Les adresses laposte.net ne permettent pas de recevoir nos emails. Vous êtes invité à changer d'adresse dans vos paramètres de compte à votre prochaine connexion.

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

nombre réponses : 25

#0 -1 »  Mettre à jour un texte html sans rafraichir » Le 29/11/2016, à 18:32

Hizoka
Réponses : 6

Bonsoir,

je cherche un moyen pour mettre à jour quelques infos dans une page html5 sans la recharger completement.

Pour faire ça, j'ai fait le gros crado tongue

Une page hmtl5 avec un <object> qui affiche les infos que je veux.

<!DOCTYPE html>

<html lang="fr">
    <head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="style.css" />
    </head>

    <body id="IndexPage">
        <header>
            <p id="pBidon"></p>
            <object name="foo" type="text/html" data="header.html" width="810" height="40"></object>
        </header>

        <div id="DivCentral">
            <div id="DivDroite">
                <!-- Lecteur audio : autoplay -->
                <section id="AudioPlayer">
                    <audio controls autoplay>Impossible d'afficher le player</audio>
                </section>

                <!-- Informations sur la zic -->
                <section id="News">
                    <h2>News :</h2>
                </section>
            </div>
        </div>
    </body>
</html>

Dans la page des infos, j'ai mis un <meta http-equiv="refresh" content="10">

<!DOCTYPE html>

<html lang="fr">
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="refresh" content="10">
        <link rel="stylesheet" href="style.css" />
    </head>

    <body>
        <div id="Infos">Bla bla bla</div>
    </body>
</html>

Et pour finir j'utilise un script python qui recrée régulierement ma page d'info:

#! /bin/python3
from urllib.request import urlopen
from time import sleep, strftime
from pathlib import Path # Nécessaire pour la recherche de fichier

while True:
    Duree = 30

    try:
        # Lecture de la page ligne par ligne
        for Ligne in urlopen("http://adresse-bidon.fr").read().decode('UTF-8').split("\n"):
            # Récupération des infos
            if 'class="SuperTest"' in Ligne:
                Infos = Ligne.replace("</td>", "").replace('<td class="SuperTest">', '').split(" | ")
    except:
        pass

    # Ecriture d'un nouveau fichier contenant les infos à afficher
    with open("header.html", "w") as HeaderFile:
        HeaderFile.write('<!DOCTYPE html>\n\n')
        HeaderFile.write('<html lang="fr">\n')
        HeaderFile.write('    <head>\n')
        HeaderFile.write('        <meta charset="utf-8" />\n\n')
        HeaderFile.write('        <meta http-equiv="refresh" content="{}">\n\n'.format(Duree))
        HeaderFile.write('        <link rel="stylesheet" href="style.css" />\n')
        HeaderFile.write('    </head>\n\n')
        HeaderFile.write('    <body>\n')
        HeaderFile.write('        <div id="Infos">{} - {}</div>\n'.format(Infos[0], Infos[1]))
        HeaderFile.write('    </body>\n')
        HeaderFile.write('</html>\n')

    sleep(10)

Alors globalement ça fonctionne mais ça fait vraiment Mac Giver...

En cherchant un peu partout, j'ai cru comprendre qu'il fallait passer par javascript mais je n'y arrive pas...

Je prends les conseils et les solutions smile

Merci à vous

EDIT : Je commence à me mettre à Django, mais il ne permet pas de faire ça non plus sans javascript.

#1 Re : -1 »  Mettre à jour un texte html sans rafraichir » Le 01/12/2016, à 08:20

Hizoka
Réponses : 6

Salut,

arf, je ne connais ni jquery ni ajax...

avec php, je peux recuperer les infos ou ça ne fait que remplacer mon object html ?

#2 Re : -1 »  Mettre à jour un texte html sans rafraichir » Le 01/12/2016, à 19:27

Hizoka
Réponses : 6

Merci beaucoup soshy, j'imaginais un truc équivalent à ce que tu m'as proposé dans ton édit smile

Va falloir bosser un peu la soupe, mais une question est il possible qu'il se mette à jour tout seul sans action de la part du lecteur ?

PS : on fait comme on peut avec ce qu'on connaît tongue (dans mon cas bash et python)

EDIT : Il semble que j'arrive à accéder à ce que je veux au niveau texte smile

#3 Re : -1 »  [Résolu] Exécuter un script en mode graphique sans logiciels » Le 30/11/2016, à 08:32

Hizoka
Réponses : 4

Zenity n'est pas installé par défaut sur ubuntu ?

Sinon après il est possible d'afficher des infos en ouvrant un terminal gnome.

car au final ce que tu veux, c'est affiché du texte non ?

#4 Re : -1 »  [Résolu] Exécuter un script en mode graphique sans logiciels » Le 30/11/2016, à 20:03

Hizoka
Réponses : 4

Y'a aussi Zenity Generator et Zenitor_3 pour ceux/celles qui aiment avoir un assistant

Ravi que des gens s'en servent smile

Zenity est bien installé par défaut

ca m'etonnait...

#5 Re : -1 »  crontab [Résolu] » Le 28/11/2016, à 18:24

Hizoka
Réponses : 6

je ne comprends pas...

donne des exemples de taches car tu peux créer autant de lignes dans crontab que tu veux...

#6 Re : -1 »  crontab [Résolu] » Le 28/11/2016, à 22:34

Hizoka
Réponses : 6

bah ça ne pose aucun soucis d'avoir plusieurs taches comme ça...

#7 Re : -1 »  crontab [Résolu] » Le 29/11/2016, à 19:45

Hizoka
Réponses : 6

https://doc.ubuntu-fr.org/cron

Si c'est bon, ajoute un [resolu] dans le titre de ton topic

#8 Re : -1 »  install.sh en root et après ? » Le 29/11/2016, à 15:09

Hizoka
Réponses : 5

Salut, juste pour info ça ne peut pas fonctionner...

sh install.sh

ou si le fichier executable

install.sh

mais jamais

sh ./install.sh

Mais je ne peux qu'aller dans le sens de bruno et smokeh !!
1) Les dépôts officiels
2) les ppa, dépôts non officiels Launchpad (avec les dangers d'installer des logiciels gérés par des tiers même si c'est très pratique).
3) les paquets deb déjà construits (avec les mêmes dangers que ci dessus)
4) Compilation (globalement très compliqué, long et fastidieux)

#9 Re : -1 »  Script pour optimiser une tournée » Le 24/11/2016, à 19:00

Hizoka
Réponses : 38

les accents semblent poser probleme...
sans, ça fonctionne...

#10 Re : -1 »  Script pour optimiser une tournée » Le 24/11/2016, à 19:57

Hizoka
Réponses : 38
#!/bin/python3
from urllib.request import urlopen
from urllib.parse import quote
from concurrent.futures import ThreadPoolExecutor # Permet de le multi calcul
from multiprocessing import cpu_count # Indique le nombre de cpu



# Variables
TotalDistance = 0
TotalTemps = 0
Villes = []
VillesInconnues = set()
Stop=False
StopMessage=""
Cle="AIzaSyD5UNZCB4zhybm0f8Kf1vxOhsprKCFVIyE"
#Cle="AIzaSyB3mt5IkwuxFVS2H7pcdy4aqrkDGhsi_ao"
Fichier = "ListeVilles.txt" # La 1ere ville est celle de départ
Sortie = "VillesTriees.txt"


def Internet(Arrive):
    global Depart
    global Stop

    if Depart in VillesInconnues or Arrive in VillesInconnues or Stop:
        return

    # On ajoute les infos sur le trajet
    print(Depart, "<=>", Arrive)
    for Ligne in urlopen("https://maps.googleapis.com/maps/api/distancematrix/json?origins={}&destinations={}&language=fr&key={}".format(quote(Depart.replace(" ", "+")), quote(Arrive.replace(" ", "+")), Cle)).read().decode('UTF-8').split("\n"):
        if '"value" :' in Ligne:
            BigDico[Depart][Arrive].append(Ligne.split(' : ')[1])
            BigDico[Arrive][Depart].append(Ligne.split(' : ')[1])

        elif '"destination_addresses" : [ "" ],' in Ligne:
            VillesInconnues.add(Arrive)

        elif '"origin_addresses" : [ "" ],' in Ligne:
            VillesInconnues.add(Depart)

        elif '"error_message" :' in Ligne:
            Stop=True

            global StopMessage
            StopMessage = ":".join(Ligne.split(":")[1:])



# Fonction qui regarde la ville la plus proche en temps
def Tri(Depart, VillesVisitees):
    try:
        x = []

        for Ville, Values in BigDico[Depart].items():
            if Ville not in VillesVisitees:
                x.append((int(Values[1]), int(Values[0]), Ville))

        x.sort()

        global TotalDistance
        TotalDistance += x[0][1]
        global TotalTemps
        TotalTemps += x[0][0]

        return(x[0][2])
    except:
        print("La fonction tri n'a pas bien fonctionnée avec", Depart, VillesVisitees)
        print(BigDico[Depart])



with open(Fichier, "r") as ListeVilles:
    for Ville in ListeVilles:
        Villes.append(Ville.strip())

VillesVisitees = [Villes[0]] # Ville de départ

# Dictionnaire qui contiendra les infos
BigDico = {}


# 1ere boucle travaillant sur les villes
for Depart in Villes:
    # Ajoute la ville à la liste
    if Depart not in BigDico.keys():
        BigDico[Depart] = {}

    Caca = []

    # 2e boucle traitant les villes
    for Arrive in Villes:
        # Si les 2 villes sont les mêmes, on saute ce calcul
        if Depart == Arrive:
            continue

        # Pour eviter de calculer plusieurs fois les mêmes trajets
        if Arrive not in BigDico.keys():
            BigDico[Arrive] = {}

        # On ajoute la nouvelle destination à la ville de départ
        if Arrive not in BigDico[Depart].keys():
            BigDico[Depart][Arrive] = []
            BigDico[Arrive][Depart] = []

            Caca.append(Arrive)

    with ThreadPoolExecutor(max_workers=cpu_count()) as executor:
        for City in Caca:
            executor.submit(Internet, City)


# Supprime les villes iconnues
for Ville in VillesInconnues:
    print("Impossible de trouver la ville", Ville)

    try:
        del(BigDico[Ville])
    except:
        pass

    popo = dict(BigDico)

    for MiniDict in popo:
        try:
            del(BigDico[MiniDict][Ville])
        except:
            pass


if Stop:
    print("Une erreur est survenue :", StopMessage)
    exit()


for Ville, Values in BigDico[Depart].items():
    print(Ville, Values)

# Tri les temps d'acces par ordre
Trajet = [Villes[0]]

NextVille = Tri(Villes[0], VillesVisitees)
Trajet.append(NextVille)
VillesVisitees.append(NextVille)

# Boucle traitant toutes les villes
while len(Villes) != len(VillesVisitees) + len(VillesInconnues):
    NextVille = Tri(NextVille, VillesVisitees)
    Trajet.append(NextVille)
    VillesVisitees.append(NextVille)


# Écriture dans le fichier de sortie
with open(Sortie, "w") as VillesTriees:
    for Ville in Trajet:
        if Ville:
            VillesTriees.write(Ville + '\n')


# informations
print("Les trajets les plus rapides seraient :", " => ".join(Trajet))
print("Cela fait un total de {}km et {} heures de trajet".format(int(TotalDistance/1000), int(TotalTemps/3600)))
Les trajets les plus rapides seraient : Bordeaux => Léognan => Toulouse => Narbonne => Marseille => Paris => Lille
Cela fait un total de 1668km et 16 heures de trajet

Va te falloir te mettre à python smile

#11 Re : -1 »  Script pour optimiser une tournée » Le 27/11/2016, à 11:26

Hizoka
Réponses : 38

Y a ça aussi qui semble pas mal : https://developer.mapquest.com/document … tions-api/

https://developer.mapquest.com/document … trix/post/ semble complétement adapté mais je n'ai qu'un message d'erreur quand j'essaie de l'utiliser...

http://www.mapquestapi.com/directions/v2/routematrix?json{"locations":["Rouen","Rennes","Paris","Nantes"],"options":{"allToAll":true}}&outFormat=xml&key=KEY
Error parsing JSON from Request: A JSONObject text must begin with '{' at character 0 of ,  Please see the documentation for the Directions Service at http://www.mapquestapi.com/directions/ for details on correctly formatting requests.

je ne sais pas si ça vient de moi ou pas...

Pourtant

https://www.mapquestapi.com/directions/v2/optimizedRoute?json={"locations":["Rouen","Caen","Rennes","Paris"]}&outFormat=xml&key=KEY

fonctionne bien lui...

#12 Re : -1 »  Script pour optimiser une tournée » Le 27/11/2016, à 18:20

Hizoka
Réponses : 38

c'est ce que j'ai compris.

#13 Re : -1 »  Script pour optimiser une tournée » Le 27/11/2016, à 20:29

Hizoka
Réponses : 38

c'est assez compliqué car on ne peut les mettre que par paquets de 25...
donc franchement ca va prendre du temps à mettre en place et je n'ai pas trop ce temps là...

si on veut garder le système de la double boucle, il faut pas faire du allToAll mais du direct, ce qui permet de faire des paquets de 100 d'après ce que j'ai lu.

#14 Re : -1 »  Script pour optimiser une tournée » Le 27/11/2016, à 22:39

Hizoka
Réponses : 38

Si on veut etre precis : 100 * 99 = 9900

et si on evite de calculer les aller retour, ça fait bien moins puisque que, si je dis pas de connerie :
1ere ville : 99 (les 99 autres villes)
2e : 98 (les 99 moins la 1ere)
3e : 97 (les 99 moins les 2 premieres)
...
99e : 1
100 : 0

#15 Re : -1 »  [Résolu] Copier un même fichier dans plusieurs répertoires » Le 27/11/2016, à 11:13

Hizoka
Réponses : 14

Salut

Liste=("Gamin1" "Gamin2")
Fichier="Coucou.txt"

for Enfant in "${Liste[@]}"
do
  cp "${Fichier}" "${Enfant}"
done

#16 Re : -1 »  [Résolu] Copier un même fichier dans plusieurs répertoires » Le 27/11/2016, à 12:47

Hizoka
Réponses : 14

Arf...

for Enfant in "${Liste[@]}"

marchera bien mieux...
J'aurais mieux fait de me relire moi...
Désolé...

for Enfant in "${Liste[@]}"

Il va faire une boucle où Enfant prendra 1 à 1 les valeurs de la liste

#17 Re : -1 »  [Résolu] Copier un même fichier dans plusieurs répertoires » Le 27/11/2016, à 18:19

Hizoka
Réponses : 14

Watael => Il existe donc des commandes que tu ne maîtrises pas alors ?!! lol

#18 Re : -1 »  [Résolu] Copier un même fichier dans plusieurs répertoires » Le 27/11/2016, à 20:30

Hizoka
Réponses : 14

erresse => for Enfant in "${Liste[@]}"
big_smile

#19 Re : -1 »  [RESOLU] [SED] Mettre en évidence les espaces » Le 26/11/2016, à 12:22

Hizoka
Réponses : 7

Lu,

tu peux faire ça aussi smile :

echo -e 'aaa bb c\t\t d\te' | sed -r 's/[[:space:]]+/_/g'

Tu peux ajouter un [Resolu] dans ton titre de topic.

#21 Re : -1 »  [Résolu] Tellico vers KDE5 » Le 24/11/2016, à 19:02

Hizoka
Réponses : 11

Bonsoir,

je revenais aux nouvelles, avez vous reussis ? smile

#22 Re : -1 »  [Résolu] Tellico vers KDE5 » Le 24/11/2016, à 23:07

Hizoka
Réponses : 11

Ca c'est cool !

Perso j'ai pas eu le temps de me repencher dessus.

y a moyen que tu remplaces

sudo make install

par

sudo checkinstall

de memoire...?

ca permettrait de creer un fichier deb, ca serait vraiment sympa.

#23 Re : -1 »  [Résolu] Tellico vers KDE5 » Le 25/11/2016, à 09:41

Hizoka
Réponses : 11

Voici une version 64bits créé avec checkinstall (et j'ai mis les réponses par défaut) : Tellico v3.0 64bits

Je n'aurai jamais pu réussir à trouver tous ces paquets...

Grand merci !

Au final il m'aura fallut installer ces dépendances :

kdoctools-dev kio-dev libdrm-dev libegl1-mesa-dev libgl1-mesa-dev libgles2-mesa-dev libglu1-mesa-dev libkf5archive-dev libkf5attica-dev libkf5auth-bin-dev libkf5auth-dev libkf5bookmarks-dev libkf5codecs-dev libkf5completion-dev libkf5config-bin-dev libkf5config-dev libkf5configwidgets-dev libkf5coreaddons-bin-dev libkf5coreaddons-dev libkf5crash-dev libkf5dbusaddons-dev libkf5globalaccel-dev libkf5guiaddons-dev libkf5i18n-dev libkf5iconthemes-dev libkf5itemmodels-dev libkf5itemviews-dev libkf5jobwidgets-dev libkf5jsapi5 libkf5khtml-dev libkf5kjs-dev libkf5newstuff-dev libkf5notifications-dev libkf5parts-dev libkf5service-dev libkf5solid-dev libkf5sonnet-dev libkf5textwidgets-dev libkf5wallet-dev libkf5widgetsaddons-dev libkf5windowsystem-dev libkf5xmlgui-dev libmirclient-dev libmircommon-dev libmircookie-dev libmircookie2 libpcre3-dev libpcre32-3 libpcrecpp0v5 libprotobuf-dev libpthread-stubs0-dev libqt5opengl5-dev libqt5scripttools5 libwayland-bin libwayland-dev libx11-dev libx11-doc libx11-xcb-dev libxau-dev libxcb-dri2-0-dev libxcb-dri3-dev libxcb-glx0-dev libxcb-present-dev libxcb-randr0-dev libxcb-render0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb1-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxkbcommon-dev libxshmfence-dev libxxf86vm-dev mesa-common-dev qt5-qmake qtbase5-dev qtbase5-dev-tools qtscript5-dev x11proto-core-dev x11proto-damage-dev x11proto-dri2-dev x11proto-fixes-dev x11proto-gl-dev x11proto-input-dev x11proto-kb-dev x11proto-xext-dev x11proto-xf86vidmode-dev xorg-sgml-doctools xtrans-dev zlib1g-dev camlp4 ecm icu-devtools ledit libcamlp4-ocaml-dev libexempi-dev libexempi3 libfindlib-ocaml libfindlib-ocaml-dev libgmp-dev libgmpxx4ldbl libgnutls-openssl27 libgnutls28-dev libgnutlsxx28 libicu-dev libidn11-dev libncurses5-dev libp11-kit-dev libpoppler-dev libpoppler-qt5-dev libqimageblitz-dev libtag1-dev libtaglib-ocaml libtaglib-ocaml-dev libtasn1-6-dev libtasn1-doc libtinfo-dev libwrap0-dev libxml2-dev libxslt1-dev libyaz4 libyaz4-dev nettle-dev ocaml-base-nox ocaml-compiler-libs ocaml-findlib ocaml-interp ocaml-nox

et pour la création d'un paquet vite fait :

checkinstall

téléchargement de la derniere version : https://dl.opendesktop.org/api/files/do … 3.0.tar.xz

Extraction du fichier.

une fois dans le dossier extrait :

cmake . -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix`

puis :

make

et enfin :

sudo make install

ou pour creer un fichier deb

sudo checkinstall

En tout cas, merci à vous pour votre aide si précieuse !

#24 Re : -1 »  [pyqt4/5] MKV Extractor Qt » Le 24/11/2016, à 15:42

Hizoka
Réponses : 111

Ok, merci pour vos retours smile

Petite mise à jour :

Version 5.4.4 a écrit :

  [english]
    - Update of the cz translation
    - Bug correction (files extracted removed when the software is closed)
    - Change the icon to svg
    - Update the Debian files

  [français]
    - Mise à jour de la traduction tcheque
    - Correction d'un bug (suppression des fichiers extraits lors de la fermeture du logiciel)
    - Changement de l'icone en svg
    - Mise à jour des fichiers Debian