Ouvrir url donnée sur un chan irc

[Résolu]
Signaler
Messages postés
22
Date d'inscription
mercredi 24 octobre 2007
Statut
Membre
Dernière intervention
1 décembre 2009
-
Messages postés
22
Date d'inscription
mercredi 24 octobre 2007
Statut
Membre
Dernière intervention
1 décembre 2009
-
Salut ! Je débute en C# et j'ai commencé à coder un bot irc pour tenir mon chan ouvert quand personne n'est connecté dessus. La plupart du bot est terminé mais j'ai un ptit soucis pour ajouter une fonction... J'aimerai que le bot ouvre une page internet chez moi quand je tape une url sur mon chan... J'ai essayé comme ça :

                        if (inputLine.EndsWith(".com"))
                        {
                            int url_start = inputLine.IndexOf("http://");
                            string url_good = inputLine.Substring(url_start);
                            System.Diagnostics.Process.Start(url_good, true);


le soucis c'est que System.Diagnostics.Process.Start n'a pas l'air de vouloir fonctionner avec un string (caleçon non plus d'ailleur!)... Comment je pourrai faire pour que ça fonctionne ?
Merci d'avance !

5 réponses

Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
49
Salut.

As-tu vérifié si url_good avait la bonne valeur ?
Le deuxième argument de Process.Start ne peut pas être un booléen. Généralement ce sont les arguments de la ligne de commande.
Si ça ne marche pas en mettant un seul argument, tu peux essayer comme ça : Process.Start(@"C:\Program Files\Mozilla Firefox\firefox.exe", url_good);

Krimog :
while (!succeed = try()) ;
Messages postés
22
Date d'inscription
mercredi 24 octobre 2007
Statut
Membre
Dernière intervention
1 décembre 2009

Merci pour ta réponse, le problème venait effectivement du booléen, donc jlai enlevé et ça fonctionne nikel

System.Diagnostics.Process.Start(url_good);
Messages postés
22
Date d'inscription
mercredi 24 octobre 2007
Statut
Membre
Dernière intervention
1 décembre 2009

Pour éviter que des url s'ouvrent trop souvent je voulai rajouter une commande. Genre taper l'url et "!visit".
Comment je peux faire pour isoler l'url ? J'ai essayé comme ça :

                        if (inputLine.EndsWith("!visit"))
                        {
                            int url_start = inputLine.IndexOf("http://");
                            string url_good = inputLine.Substring(url_start);
                            System.Diagnostics.Process.Start(url_good) - " !visit";
                            writer.WriteLine("PRIVMSG " + CHANNEL + " :" + url_good - " !visit" + " visited");
                            writer.Flush();
                            Thread.Sleep(2000);
                        }

Le soucis maintenant c'est le "-" qui accepte pas non plus les strings ou les int... Tu vois un autre moyen ? J'ai pensé à un regex mais je voulai être sur avant qu'il n'y ai pas d'autre solution.
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
49
Salut

Tout d'abord, dans la conception, cette ligne est mauvaise : System.Diagnostics.Process.Start(url_good) - " !visit";
Au niveau des types tu es en train de faire : Process - string
Si (je dis bien si) on pouvait utiliser l'opérateur - sur des strings, il aurait fallu écrire System.Diagnostics.Process.Start(url_good - " !visit");

Ensuite, le - n'est pas surchargé sur un string. Tu ne peux donc pas l'utiliser. Pour enlever un texte précis d'un string, il faut le remplacer par rien :
url_good.Replace(" !visit", string.Empty);

De plus, effectivement, si tu veux jouer de manière plus aboutie avec les strings, je te conseille de regarder les expressions régulières et la classe Regex, ce sera plus simple à faire et plus efficace.

Krimog :
while (!succeed = try()) ;
Messages postés
22
Date d'inscription
mercredi 24 octobre 2007
Statut
Membre
Dernière intervention
1 décembre 2009

merci ça fonctionne parfaitement, je vais garder ça en attendant de comprendre comment marche la classe regex.
Encore un grand merci à toi !