<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dariusz [LocK] Łuksza &#187; python</title>
	<atom:link href="http://luksza.org/category/programing/python/feed/" rel="self" type="application/rss+xml" />
	<link>http://luksza.org</link>
	<description>myśli luźno zebrane ... ja i moja jaźń w intenecie</description>
	<lastBuildDate>Fri, 30 Jul 2010 01:22:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>

   <image>
    <title>Dariusz [LocK] Łuksza</title>
    <url>http://0.gravatar.com/avatar/ed2d261ca5db36a17e690dc736dcd9ef?s=48&amp;d=http%3A%2F%2Fluksza.org%2Fwp-includes%2Fimages%2F</url>
    <link>http://luksza.org</link>
   </image>
		<item>
		<title>cda2mpc 1.2</title>
		<link>http://luksza.org/2009/10/14/cda2mpc-1-2/</link>
		<comments>http://luksza.org/2009/10/14/cda2mpc-1-2/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 20:59:27 +0000</pubDate>
		<dc:creator>Dariusz Łuksza</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[cda2mpc]]></category>
		<category><![CDATA[mpc]]></category>

		<guid isPermaLink="false">http://luksza.org/?p=382</guid>
		<description><![CDATA[Today I publish newest version of cda2mc on github. This version contains 2 new features: it is possible to add CD information manually if CDDB does not contains information about it if CDDB contains multiple entry&#8217;s for that particular CD you can chose one from list with one you want to use]]></description>
			<content:encoded><![CDATA[<p>Today I publish newest version of cda2mc on <a href="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2dpdGh1Yi5jb20vbG9jay9jZGEybXBj" target=\"_blank\">github</a>.</p>
<p>This version contains 2 new features:</p>
<ol>
<li>it is possible to add CD information manually if CDDB does not contains information about it</li>
<li>if CDDB contains multiple entry&#8217;s for that particular CD you can chose one from list with one you want to use</li>
</ol>
 <img src="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=382" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://luksza.org/2009/10/14/cda2mpc-1-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>cda2mpc</title>
		<link>http://luksza.org/2009/03/01/cda2mpc/</link>
		<comments>http://luksza.org/2009/03/01/cda2mpc/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 13:19:02 +0000</pubDate>
		<dc:creator>Dariusz Łuksza</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[polish]]></category>
		<category><![CDATA[programowanie]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[cda2mpc]]></category>
		<category><![CDATA[mpc]]></category>

		<guid isPermaLink="false">http://luksza.org/?p=233</guid>
		<description><![CDATA[Parę dni temu postanowiłem zgrać moją skromną kolekcję płyt audio do formatu MPC. Nie chcąc marnować czasu (i zaśmiecać systemu zbędnym softem), postanowiłem napisać sobie mały i prosty skrycik w Python&#8217;ie. Założenia prostota automatyczność (wkładam płytę odpalam skrypt i zapominam &#8230; ) zapis wyjściowych plików w pewnym ustalonym schemacie katalogów (wykonawca, nazwa albumu i utworu [...]]]></description>
			<content:encoded><![CDATA[<p>Parę dni temu postanowiłem zgrać moją skromną kolekcję płyt audio do formatu <a href="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3BsLndpa2lwZWRpYS5vcmcvd2lraS9NdXNlcGFjaw==" target=\"_blank\">MPC</a>. Nie chcąc marnować czasu (i zaśmiecać systemu zbędnym softem), postanowiłem napisać sobie mały i prosty skrycik w Python&#8217;ie. Założenia</p>
<ul>
<li>prostota</li>
<li>automatyczność (wkładam płytę odpalam skrypt i zapominam &#8230; <img src='http://luksza.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> )</li>
<li>zapis wyjściowych plików w pewnym ustalonym schemacie katalogów (wykonawca, nazwa albumu i utworu pisana camel case&#8217;em dodatkowo nazwa utworu poprzedzona jego numerem oraz praw dostępu: 400 (dla utworów_ i 500 (albumu))</li>
<li>automatyczne pobieranie informacji o utworach bez konieczności ich przepisywania (tj. wykorzystanie <a href="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9DZGRi" target=\"_blank\">CDDB</a>, a konkretnie <a href="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?url=aHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wcm9qZWN0cy9jZGRiLXB5Lw==" target=\"_blank\">cddb-py</a>)</li>
</ul>
<p>Oto efekt (należy pamiętać żeby podmienić <strong>baseDir</strong> !):</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#! /usr/bin/python</span>
&nbsp;
<span style="color: #483d8b;">&quot;&quot;&quot;
cda2mpc, Copyrighted, 2009
Ripps directly from CD audio to musepack (mpc) format.
Developed by Dariusz Luksza 
License: GPL v2
&quot;&quot;&quot;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">import</span> CDDB, DiscID, <span style="color: #dc143c;">re</span>
<span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">sys</span> <span style="color: #ff7700;font-weight:bold;">import</span> stdout
<span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">string</span> <span style="color: #ff7700;font-weight:bold;">import</span> capitalize
<span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">os</span> <span style="color: #ff7700;font-weight:bold;">import</span> chmod, makedirs <span style="color: #ff7700;font-weight:bold;">as</span> mkdir
<span style="color: #ff7700;font-weight:bold;">from</span> <span style="color: #dc143c;">subprocess</span> <span style="color: #ff7700;font-weight:bold;">import</span> Popen, PIPE, call
&nbsp;
baseDir = <span style="color: #483d8b;">'/home/lock/muzyka/'</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> camelCase<span style="color: black;">&#40;</span>value<span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #483d8b;">&quot;&quot;</span>.<span style="color: black;">join</span><span style="color: black;">&#40;</span><span style="color: black;">&#91;</span>capitalize<span style="color: black;">&#40;</span>w<span style="color: black;">&#41;</span> <span style="color: #ff7700;font-weight:bold;">for</span> w <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #dc143c;">re</span>.<span style="color: black;">split</span><span style="color: black;">&#40;</span><span style="color: #dc143c;">re</span>.<span style="color: #008000;">compile</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;[ _]?&quot;</span><span style="color: black;">&#41;</span>, value<span style="color: black;">&#41;</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Getting CDDB info ...'</span>,
stdout.<span style="color: black;">flush</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
cdrom = DiscID.<span style="color: #008000;">open</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
discId = DiscID.<span style="color: black;">disc_id</span><span style="color: black;">&#40;</span>cdrom<span style="color: black;">&#41;</span>
&nbsp;
<span style="color: black;">&#40;</span>queryStatus, queryInfo<span style="color: black;">&#41;</span> = CDDB.<span style="color: black;">query</span><span style="color: black;">&#40;</span>discId<span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">isinstance</span><span style="color: black;">&#40;</span>queryInfo, <span style="color: #008000;">list</span><span style="color: black;">&#41;</span>:
	queryInfo = queryInfo<span style="color: black;">&#91;</span><span style="color: #ff4500;">0</span><span style="color: black;">&#93;</span>
&nbsp;
<span style="color: black;">&#40;</span>readStatus, readInfo<span style="color: black;">&#41;</span> = CDDB.<span style="color: black;">read</span><span style="color: black;">&#40;</span>queryInfo<span style="color: black;">&#91;</span><span style="color: #483d8b;">'category'</span><span style="color: black;">&#93;</span>, queryInfo<span style="color: black;">&#91;</span><span style="color: #483d8b;">'disc_id'</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
&nbsp;
album = queryInfo<span style="color: black;">&#91;</span><span style="color: #483d8b;">'title'</span><span style="color: black;">&#93;</span>
splitAt = album.<span style="color: black;">index</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'/'</span><span style="color: black;">&#41;</span>
&nbsp;
artist = album<span style="color: black;">&#91;</span>:splitAt - <span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span>
album = album<span style="color: black;">&#91;</span>splitAt + <span style="color: #ff4500;">2</span>:<span style="color: black;">&#93;</span>
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">' DONE.'</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'Starting to encoding:'</span>, artist, <span style="color: #483d8b;">'-'</span>, album
&nbsp;
saveDir = baseDir + camelCase<span style="color: black;">&#40;</span>artist<span style="color: black;">&#41;</span> + <span style="color: #483d8b;">'/'</span> + camelCase<span style="color: black;">&#40;</span>album<span style="color: black;">&#41;</span> + <span style="color: #483d8b;">'/'</span>
<span style="color: #ff7700;font-weight:bold;">try</span>:
	mkdir<span style="color: black;">&#40;</span>saveDir, 0700<span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">except</span> <span style="color: #008000;">OSError</span>:
	<span style="color: #ff7700;font-weight:bold;">pass</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span>discId<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>:
	title = readInfo<span style="color: black;">&#91;</span><span style="color: #483d8b;">'TTITLE'</span> + <span style="color: #66cc66;">`</span>i<span style="color: #66cc66;">`</span><span style="color: black;">&#93;</span>
	wavTrack = saveDir + <span style="color: #483d8b;">'track.wav'</span>
	fileName = saveDir + <span style="color: #66cc66;">`</span>i + <span style="color: #ff4500;">1</span><span style="color: #66cc66;">`</span> + <span style="color: #483d8b;">'-'</span> +camelCase<span style="color: black;">&#40;</span>title<span style="color: black;">&#41;</span> + <span style="color: #483d8b;">'.mpc'</span>
	<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\t</span>Encode track:'</span>, title , <span style="color: #483d8b;">' ('</span>, <span style="color: #66cc66;">`</span>i+<span style="color: #ff4500;">1</span><span style="color: #66cc66;">`</span>, <span style="color: #483d8b;">'/'</span>, discId<span style="color: black;">&#91;</span><span style="color: #ff4500;">1</span><span style="color: black;">&#93;</span>, <span style="color: #483d8b;">')'</span>
	<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\t</span><span style="color: #000099; font-weight: bold;">\t</span>Stage 1 (wave) ...'</span>,
	stdout.<span style="color: black;">flush</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
&nbsp;
	p = Popen<span style="color: black;">&#40;</span><span style="color: black;">&#91;</span><span style="color: #483d8b;">'cdparanoia'</span>, <span style="color: #483d8b;">'-q'</span>, <span style="color: #66cc66;">`</span>i + <span style="color: #ff4500;">1</span><span style="color: #66cc66;">`</span>, wavTrack<span style="color: black;">&#93;</span>, stdout=PIPE<span style="color: black;">&#41;</span>
	p.<span style="color: black;">wait</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
	<span style="color: #ff7700;font-weight:bold;">if</span> p.<span style="color: black;">returncode</span> <span style="color: #ff7700;font-weight:bold;">is</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #ff4500;">0</span>:
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">' ERROR!!'</span>
		<span style="color: #ff7700;font-weight:bold;">continue</span>
	<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">' DONE.'</span>
	<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'<span style="color: #000099; font-weight: bold;">\t</span><span style="color: #000099; font-weight: bold;">\t</span>Stage 2 (mpc) ...'</span>,
&nbsp;
	stdout.<span style="color: black;">flush</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
	mpcCmd = <span style="color: black;">&#91;</span><span style="color: #483d8b;">'mppenc'</span>, <span style="color: #483d8b;">'--deleteinput'</span>, <span style="color: #483d8b;">'--xtreme'</span>, <span style="color: #483d8b;">'--silent'</span>, <span style="color: #483d8b;">'--artist'</span>,
			artist, <span style="color: #483d8b;">'--album'</span>, album, <span style="color: #483d8b;">'--title'</span>, title, wavTrack, fileName<span style="color: black;">&#93;</span>
	p = Popen<span style="color: black;">&#40;</span>mpcCmd, stdout=PIPE, stderr=PIPE<span style="color: black;">&#41;</span>
	p.<span style="color: black;">wait</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
	<span style="color: #ff7700;font-weight:bold;">if</span> p.<span style="color: black;">returncode</span> <span style="color: #ff7700;font-weight:bold;">is</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #ff4500;">0</span>:
		<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">' ERROR!'</span>
		<span style="color: #ff7700;font-weight:bold;">continue</span>
	chmod<span style="color: black;">&#40;</span>fileName, 0400<span style="color: black;">&#41;</span>
	<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot; DONE.<span style="color: #000099; font-weight: bold;">\n</span><span style="color: #000099; font-weight: bold;">\t</span>COMPLETED.&quot;</span>
&nbsp;
chmod<span style="color: black;">&#40;</span>saveDir, <span style="color: #ff4500;">500</span><span style="color: black;">&#41;</span>
<span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">'COMPLETED.'</span>
call<span style="color: black;">&#40;</span><span style="color: #483d8b;">'eject'</span><span style="color: black;">&#41;</span></pre></div></div>

 <img src="http://luksza.org/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=233" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://luksza.org/2009/03/01/cda2mpc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
