IPv6 for Intovps

April 13th, 2012

Here’s a little fix for Intovps:

auto tb
iface tb inet6 manual
        pre-up  setsid /root/tb_userspace tb IPV4_ENDPOINT > /dev/null &
        up      ifconfig tb up
        post-up ifconfig tb inet6 add IPV6_ADDRESS/64
        post-up ifconfig tb mtu 1480
        post-up ip -6 route add ::/0 dev tb
        down    ifconfig tb down
        post-down       route -A inet6 del ::/0 dev tb
        post-down       killall tb_userspace

Original source

Czym się zajmuję ostatnio

March 17th, 2012

Z braku lepszego zajęcia stworzyłem własną darmową bramkę sms. Odniosła już swój pierwszy mały sukces - trafiła na główną wykopu ;-) .

 

Screenshot rbramka.pl

Album art adder II

September 25th, 2011

After a couple of hours wasting my time, and then finding out the documentation for os.walk is ‘a little’  incomplete, here’s an improved version:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

from mutagen.flac import FLAC
from mutagen.mp3 import MP3
from mutagen.id3 import ID3, APIC, error
from mutagen.easyid3 import EasyID3
import urllib2,urllib, os, sys
from xml.dom import minidom
mainenc = sys.getdefaultencoding()

def getImage(artist,track):
	try:
		req = urllib2.Request(url='http://ws.audioscrobbler.com/2.0/?',
			     data=urllib.urlencode({
				'method':'track.getinfo',
				'api_key':'b25b959554ed76058ac220b7b2e0a026',
				'artist':(artist).encode('utf-8'),
				'track':(track).encode('utf-8'),
				'autocorrect':1
				}))
		f = urllib2.urlopen(req)
		xml = f.read()
	except:
		print "Failed @ %s - %s" % (artist.encode(mainenc,'ignore'),track.encode(mainenc,'ignore'))
		return None
	nodes = minidom.parseString(xml).childNodes
	try:
		url = nodes[0].getElementsByTagName('image')[-1].childNodes[0].toxml()
	except Exception, e:
		print "Nothing found for %s" % track.encode(mainenc,'ignore')
		return None
	req = urllib2.Request(url=url)
	u = urllib2.urlopen(req)
	return u

folder = unicode(raw_input("Podaj swoj folder muzyki (np. D:\muzyka):\n"))

for root, dirs, files in os.walk(folder):
	print root.encode(mainenc,'ignore')
	for i in files:
		if 'folder.jpg' in files or 'Folder.jpg' in files:
			if os.path.getsize(root+"\\"+'folder.jpg') > 0:
				break
		ext = i.split('.')[-1].lower()
		if ext in ['flac','mp3']:
			try:
				if ext == 'flac':
					audio = FLAC(root+"\\"+i)
				elif ext == 'mp3':
					audio = MP3(root+"\\"+i,ID3=EasyID3)
			except Exception, e:
				print e
				continue
			if audio:
				img = getImage(audio['artist'][0],audio['title'][0])
				if img is not None:
					print "Writing to %s" % root.encode(mainenc,'ignore')
					f= open(root+'\\folder.jpg','wb')
					f.write(img.read())
					f.close()
					break

print "Done"

+ bonus, executable version

Jedna rzecz która mnie ostatnio wkurzyła: ekg ani nie informuje o innych klientach, ani nie reaguje gdy coś piszą. W efekcie ktoś mógłby śledzić moje rozmowy bez mojej wiedzy (vel gg sniffer wcześniej). Stworzyłem małą łatkę by temu przeciwdziałać. Ma stosunkowo prosty cel: rozłączać wszystkich obcych klientów.

Album art adder

August 20th, 2011

Minor script to add album arts to your folders, assuming you have your music organized into albums. Supports mp3 and FLAC files:

from mutagen.flac import FLAC
from mutagen.mp3 import MP3
from mutagen.id3 import ID3, APIC, error
from mutagen.easyid3 import EasyID3
import urllib2,urllib, os
from xml.dom import minidom

def getImage(artist,track):
	req = urllib2.Request(url='http://ws.audioscrobbler.com/2.0/?',
			     data=urllib.urlencode({
				'method':'track.getinfo',
				'api_key':'b25b959554ed76058ac220b7b2e0a026',
				'artist':audio["artist"][0],
				'track':audio["title"][0]
				}))
	f = urllib2.urlopen(req)
	xml = f.read()
	try:
		nodes = minidom.parseString(xml).childNodes
		url = nodes[0].getElementsByTagName('image')[-1].childNodes[0].toxml()
		req = urllib2.Request(url=url)
		u = urllib2.urlopen(req)
		return u
	except:
		return None

for root, dirs, files in os.walk('D:\\muzyka'):
	print root
	for i in files:
		if 'folder.jpg' in files or 'Folder.jpg' in files:
			if os.path.getsize(root+"\\"+'folder.jpg') > 0:
				break
		ext = i.split('.')[-1].lower()
		if ext in ['flac','mp3']:
			try:
				if ext == 'flac':
					audio = FLAC(root+"\\"+i)
				elif ext == 'mp3':
					audio = MP3(root+"\\"+i,ID3=EasyID3)
			except:
				continue
			if audio:
				img = getImage(audio['artist'][0],audio['title'][0])
				if img is not None:
					print "Writing to %s" % root
					f= open(root+'\\folder.jpg','wb')
					f.write(getImage(audio['artist'][0],audio['title'][0]).read())
					f.close()
					break

print "Done"

Albumarts are downloaded from last.fm