Most recent comments
2021 in Books -- a Miscellany
Are, 2 years, 11 months
Moldejazz 2018
Camilla, 5 years, 4 months
Romjulen 2018
Camilla, 5 years, 11 months
Liveblogg nyttårsaften 2017
Tor, 6 years, 11 months
Selvbygger
Camilla, 1 month, 4 weeks
Bekjempelse av skadedyr II
Camilla, 11 months
Kort hår
Tor, 3 years, 11 months
Ravelry
Camilla, 3 years, 6 months
Melody Gardot
Camilla, 5 years, 5 months
Den årlige påske-kommentaren
Tor, 5 years, 8 months
50 book challenge
Camilla, 11 months, 3 weeks
Ten years ago
Nissebading
Tor
Controls
Register
Archive
+ 2004
+ 2005
+ 2006
+ 2007
+ 2008
+ 2009
+ 2010
+ 2011
+ 2012
+ 2013
+ 2014
+ 2015
+ 2016
+ 2017
+ 2018
+ 2019
+ 2020
+ 2021
+ 2022
+ 2023
+ 2024

SMS fra Python via Skype

I dag har jeg gjort en stor oppdagelse. Jeg har oppdaget at det ikke bare er mulig, men faktisk bortimot trivielt, å sende SMS fra Python, via Skype, ved hjelp av Skype4Py. Dette åpner naturligvis for uante muligheter innen latskap. Man kan for eksempel få en sms når resultatet av en simulering er klart, eller man kunne skrive et script som sender sms direkte fra Quicksilver. Her er det definitivt bare fantasien som setter grenser.

Det som suger litt er at man må ha Skype oppe for å kunne bruke dette. Det fremgår ikke akkurat tydelig av alle eksempelscriptene som finnes på nettet, men det må man altså. Det som suger litt mer er at det Skype betegner som "usually much lower [enn å sende fra mobilen]." er 67.5 øre, så ikke akkurat billig. Men ikke avskrekkende heller. Det gjelder bare å tenke seg litt om, så man ikke kommer i skade for å lage en uendelig løkke, spesielt hvis man har auto-topup på skype-kontoen.

Det som suger mest av alt er at jeg får en segmentation fault når jeg prøver å bruke dette på Mac Minien på kontoret. Iherdig googling avslører at det er tre personer i hele verden som har dette problemet, og bare to av oss snakker engelsk. Det later til å ha noe med 64bit og 32bit å gjøre (Python er 64bit, Skype er 32bit), og det skal visstnok la seg løse ved å kjøre python i 32bits-modus, men det er enklere skrevet om i en forumpost enn gjort.

Uansett, dette er rimelig kult. Her er det man må gjøre for å teste dette.

1: Du må ha Skype installert, og du må være pålogget, og ha penger på kontoen.

2: Last ned og installer Skype4Py

3: Gå i python (fortrinnsvis 32bits python), og skriv:
import Skype4Py
s = Skype4Py.Skype()
s.Attach()
m = s.CreateSms(s.smsMessageTypeOutgoing, 'nummer du vil sende til')
m.Body = 'Kjære mor. Har det fint. Send mer penger.'
m.Send()


Fett, eller hur?

-Tor Nordam

Comments

Camilla,  30.05.10 22:45

Det er bra du bruker tiden din på slike fornuftige ting.

Kristian,  31.05.10 23:04

Hmm. Dette var jo en herlig artikkel om pythons fortreffelighet, selv om jeg er litt usikker på hva man skal bruke dette til, om man ikke er en spammer.

Automatisk bursdagsmelding til folk hadde ikke värt så dumt, så hadde jeg slippet å pröve å huske på dette.

Are,  02.06.10 17:39

Utrolig kult. Det er ikke løgn at det fins en pythonmodul for alt :)

Tor,  02.06.10 20:46

Ja, det er ganske kult. Det hadde vært fett om det fantes en like lettvint måte å ta imot sms.

Tor,  07.06.10 16:11

Jeg bygde litt videre på denne idéen, og lagde et script for å sende sms fra kommandolinjen. Lagre det som sms, sett chmod +x, sørg for at det ligger på pathen din, og du kan lekende lett sende meldinger uten å forlate terminalens lune rede. Siden det krever 32bits python må du passe på å sette korrekt interpreter directive for din maskin.


#!/Library/Frameworks/Python.framework/Versions/Current/bin/python2.5

import Skype4Py as S4P

from sys import argv, exit

def error():
    print 'ttThere is probably an error in this number:'
    print 'tt', num
    exit()

try:
    num = argv[1]
except:
    print 'ttUsage: sms [number] [message]'
    exit()

try:
    int(num)
except:
    error()
    
if len(num) < 8:
    error()

if len(num) == 8:
    num = '+47' + num

msg = str()
for word in argv[2:]:
    msg += word + " "
msg = msg.strip()

s = S4P.Skype()
s.Attach()
m = s.CreateSms(S4P.smsMessageTypeOutgoing, num)
m.Body = msg
m.Send()
Category
Technology
Tags
python
sms
Skype
terminal
Views
4685