Sprunge.us nopaste poster

Stato
Discussione chiusa ad ulteriori risposte.

Robertof

Utente Silver
19 Giugno 2008
186
10
0
98
Avendo visto il nopaste sprunge, mi sono detto tra me e me:
Ma non è scomodo aggiungere ogni volta il punto interrogativo e il linguaggio utilizzato per il syntax highlighting?
E così ho creato questo script in Python, che è molto semplice.
Dunque, se viene passato un argomento a questo script lui automaticamente aggiunge in fondo la stringa che passate come argomento. Se viene utilizzato senza argomento mostra semplicemente il link. Esempio:
Codice:
cat miofile | sprunge sh
Lo script ritornerà qualcosa del genere:
Codice:
http://sprunge.us/id?sh
Mentre invece:
Codice:
cat miofile | sprunge
Lo script ritornerà qualcosa del genere:
Codice:
http://sprunge.us/id

Consiglio di chiamarlo "sprunge" e di piazzarlo in /usr/bin, così basterà scrivere sprunge per lanciarlo.
Buon nopasting! XD

Script:
http://sprunge.us/BaGg?python
(Non fate caso agli accenti non presenti nei commenti, python mi dava un errore e non avendo voglia di risolvere ho levato gli accenti asd)
 
Per risolvere bastava mettere
# -*- coding: utf-8 -*-
subito sotto la riga con #!/usr ecc di cui non ricordo mai il nome, so solo che sembra una cosa porno.

E poi a dire la verità non ho capito la necessità di richiamare curl dallo script, quando in python ci sono mille mila librerie http (curl compreso). Se dovevi usare curl potevi farlo direttamente in bash....

PS
Visto che oggi mi sento precisino:
per maggiore portabilità sarebbe consigliabile sostituire
#!/usr/bin/python
con
#!/usr/bin/env python
perchè l'interprete potrebbe non stare lì...
 
In effetti Roby se lo devi fare in Python usa le varie httplib, urllib, urllib2 e cazzi&mazzi, se devi usare curl fa un semplice sh e via.
 
@kama, opocaj: grazie, ora lo metto. Ora provo ad usare le librerie che avete detto!

EDIT: Ah no, ho detto una cazzata: ho usato sh perché è possibile usare la sintassi per fare roba del tipo cat file | sprunge.
 
io userei il # -*- coding: iso-8859-1 -*-

poi invece di quel bruttissimo getstatoutput del modulo sys, io userei il popen del modulo os. Così crei una pipe, che è anche + perfomante. basta fare
result=os.popen("comando").read() #potrei sbagliarmi, ma mi pare si usi read

poi personalmente l'if con una richiesta a len nn mi piace xd. metterei:

Codice:
try: print str(result)+"?"+sys.argv[1]
except IndexError: print str(result)
 
mah non sono daccordo...
Personalmente quando non uso ascii uso solo utf-* che imho dovrebbe essere lo standard de facto in qualunque cosa.
Io userei subprocess in vece di commands e popen, poichè è stato sviluppato appositamente per sostituirli.
Infine imho è di gran lunga preferibile l'if con il len, gli stament try/except andrebbero utilizzati il meno possibile....
 
sull'ultima affermazione potrei dire che alla fine è questione di filosofia di programmazione. Come standard io preferisco l'iso, ma qui nn ho argomentazioni.
Riguardo a subprocess, non sapevo della sua esistenza, ora mi documento.

edit: ok ho letto, in effetti meglio un subprocess.call()
 
Come si potrebbe usare subprocess? Ho letto qualcosa sulla documentazione di Python ma non ci ho capito un granché.
 
Malex ha detto:
sull'ultima affermazione potrei dire che alla fine è questione di filosofia di programmazione. Come standard io preferisco l'iso, ma qui nn ho argomentazioni.
Riguardo a subprocess, non sapevo della sua esistenza, ora mi documento.

edit: ok ho letto, in effetti meglio un subprocess.call()
Il problema non è la filosofia, è l'insistere a usare Python 2.X invece di Python 3.
In Python 3 c'é l'Unicode di default, grazie a Dio.
 
Beh python 2 in realtà non è obsoleto (anzi l'ultima versione stabile 2.X è più recente dell'ultima 3.X). Per altro in molti considerano python 3 ancora immaturo.
 
kama ha detto:
Beh python 2 in realtà non è obsoleto (anzi l'ultima versione stabile 2.X è più recente dell'ultima 3.X). Per altro in molti considerano python 3 ancora immaturo.
Non è obsoleto perché ci si ostina a usarlo ancora, purtroppo, prevalentemente per questioni di compatibilità.
Per lo stesso motivo Python 3 non ingrana ed è un peccato, perché è molto meglio del 2.X.
 
sydarex ha detto:
Malex ha detto:
sull'ultima affermazione potrei dire che alla fine è questione di filosofia di programmazione. Come standard io preferisco l'iso, ma qui nn ho argomentazioni.
Riguardo a subprocess, non sapevo della sua esistenza, ora mi documento.

edit: ok ho letto, in effetti meglio un subprocess.call()
Il problema non è la filosofia, è l'insistere a usare Python 2.X invece di Python 3.
In Python 3 c'é l'Unicode di default, grazie a Dio.

veramente io mi riferivo al'utilizzo del try except al posto dell'if...
 
sydarex ha detto:
kama ha detto:
Beh python 2 in realtà non è obsoleto (anzi l'ultima versione stabile 2.X è più recente dell'ultima 3.X). Per altro in molti considerano python 3 ancora immaturo.
Non è obsoleto perché ci si ostina a usarlo ancora, purtroppo, prevalentemente per questioni di compatibilità.
Per lo stesso motivo Python 3 non ingrana ed è un peccato, perché è molto meglio del 2.X.
Io uso il 2.X per un problema di librerie, alcune mancano. Ma python 3, da quanto ho letto in giro, è molto più potente e si avvicina maggiormente al C.
Prima o poi tutti faremo il grande passo :D
 
!R~ ha detto:
sydarex ha detto:
kama ha detto:
Beh python 2 in realtà non è obsoleto (anzi l'ultima versione stabile 2.X è più recente dell'ultima 3.X). Per altro in molti considerano python 3 ancora immaturo.
Non è obsoleto perché ci si ostina a usarlo ancora, purtroppo, prevalentemente per questioni di compatibilità.
Per lo stesso motivo Python 3 non ingrana ed è un peccato, perché è molto meglio del 2.X.
Io uso il 2.X per un problema di librerie, alcune mancano. Ma python 3, da quanto ho letto in giro, è molto più potente e si avvicina maggiormente al C.
Prima o poi tutti faremo il grande passo :D

Ma che stai a dì? un linguaggio di scripting che raggiunge uno compilato come il C???? :pattmg:
 
n1ghtmare ha detto:
!R~ ha detto:
sydarex ha detto:
kama ha detto:
Beh python 2 in realtà non è obsoleto (anzi l'ultima versione stabile 2.X è più recente dell'ultima 3.X). Per altro in molti considerano python 3 ancora immaturo.
Non è obsoleto perché ci si ostina a usarlo ancora, purtroppo, prevalentemente per questioni di compatibilità.
Per lo stesso motivo Python 3 non ingrana ed è un peccato, perché è molto meglio del 2.X.
Io uso il 2.X per un problema di librerie, alcune mancano. Ma python 3, da quanto ho letto in giro, è molto più potente e si avvicina maggiormente al C.
Prima o poi tutti faremo il grande passo :D

Ma che stai a dì? un linguaggio di scripting che raggiunge uno compilato come il C???? :pattmg:
Ho detto che si avvicina. Non leggi?
 
per python 3.0 ci sono ben 2 topic 8uno che ne parla, l'altro che lo accenna) entrambi postati da me.. uno è stickato, l'altro (in rwaltà parla della 2.6): http://forum.infernet.ws/python-2-6-t-12626.html
 
Stato
Discussione chiusa ad ulteriori risposte.