<?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>blog.motarion.net &#187; Web Developpement</title>
	<atom:link href="http://blog.motarion.net/tag/web-developpement/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.motarion.net</link>
	<description>Par un joueur FR, pour des joueurs FR !</description>
	<lastBuildDate>Fri, 29 Oct 2010 09:03:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Trac: Supression de ticket en masse</title>
		<link>http://blog.motarion.net/2009/07/12/trac-supression-de-ticket-en-masse/</link>
		<comments>http://blog.motarion.net/2009/07/12/trac-supression-de-ticket-en-masse/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 22:07:40 +0000</pubDate>
		<dc:creator>Motarion</dc:creator>
				<category><![CDATA[Libre]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Trac]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Web Developpement]]></category>

		<guid isPermaLink="false">http://blog.motarion.net/?p=213</guid>
		<description><![CDATA[<br/>Suite à un problème avec mon environnement Trac pour gérer mes sources, celui ci était envahi de ticket SPAM envoyé par des bots car j&#8217;avais mal configuré les permissions. Maintenant que les permissions sont bonnes, il ne reste plus qu&#8217;à supprimer les ticket SPAM. Ma version de Trac est celle de la Dapper (6.06 LTS) [...]]]></description>
			<content:encoded><![CDATA[<br/><p>Suite à un problème avec mon environnement <a href="http://trac.edgewall.org/" target="_blank">Trac</a> pour gérer mes sources, celui ci était envahi de ticket SPAM envoyé par des bots car j&#8217;avais mal configuré les permissions. Maintenant que les permissions sont bonnes, il ne reste plus qu&#8217;à supprimer les ticket SPAM.</p>
<p>Ma version de <a href="http://trac.edgewall.org/" target="_blank">Trac</a> est celle de la Dapper (6.06 LTS) d&#8217;Ubuntu Server, donc la version 9.3. Il n&#8217;existe pas de plugin pour cette version qui permette de supprimer des tickets en masse. J&#8217;avais 300 ticket à supprimer.</p>
<p>La base de donnée étant en <a href="http://sqlite.org/" target="_blank">SQLite</a>, j&#8217;ai écrit un petit script qui permet de supprimer les tickets.</p>
<p>Ce script doit être lancé avec un utilisateur qui a les droits décriture sur la base de donnée de Trac.</p>
<p>Paramètres:</p>
<ol>
<li>Chemin de la base de donnée SQLite de trac</li>
<li>Premier ticket à supprimer</li>
<li>Dernier ticket à supprimer</li>
</ol>
<p>Script trac_del_ticket.sh :</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    Mass removing tickets from Trac environnement</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    Motarion &amp;lt;motarion@gmail.com&amp;gt;</span>
<span style="color: #666666; font-style: italic;">#    Creation date: 12/07/2009</span>
<span style="color: #666666; font-style: italic;">#    Last modification: 12/07/2009</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    History:</span>
<span style="color: #666666; font-style: italic;">#    v0.1: &amp;lt;12/07/2009&amp;gt; Initial release.</span>
<span style="color: #666666; font-style: italic;">#</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Variables</span>
<span style="color: #007800;">NB_PARAM</span>=<span style="color: #ff0000;">&quot;$#&quot;</span>
<span style="color: #007800;">DB_PATH</span>=<span style="color: #ff0000;">&quot;$1&quot;</span>
<span style="color: #007800;">FIRST_TICKET</span>=<span style="color: #ff0000;">&quot;$2&quot;</span>
<span style="color: #007800;">LAST_TICKET</span>=<span style="color: #ff0000;">&quot;$3&quot;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Programs</span>
<span style="color: #007800;">SQLITE_CLIENT</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">which</span> sqlite3<span style="color: #000000; font-weight: bold;">`</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Tests</span>
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$NB_PARAM</span> <span style="color: #660033;">-gt</span> <span style="color: #000000;">3</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$NB_PARAM</span> <span style="color: #660033;">-lt</span> <span style="color: #000000;">3</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>;
<span style="color: #000000; font-weight: bold;">then</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Error: Usage $0 PATH_TO_TRAC.DB FIRST_TICKET LAST_TICKET&quot;</span>
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$SQLITE_CLIENT</span> == <span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">then</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Error: This script require Sqlite3 client to work. Please install it.&quot;</span>
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span>
<span style="color: #000000; font-weight: bold;">else</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Info: Sqlite client dependancy satisfied. (<span style="color: #007800;">$SQLITE_CLIENT</span>)&quot;</span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000; font-weight: bold;">!</span> <span style="color: #660033;">-d</span> <span style="color: #007800;">$DB_PATH</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
<span style="color: #000000; font-weight: bold;">then</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Error: The path to the trac.db file is not correct.&quot;</span>
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span>
<span style="color: #000000; font-weight: bold;">else</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Info: Path to the trac.db is correct.&quot;</span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Main loop</span>
<span style="color: #000000; font-weight: bold;">for</span> i <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">seq</span> <span style="color: #007800;">$FIRST_TICKET</span> <span style="color: #007800;">$LAST_TICKET</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #000000; font-weight: bold;">do</span>
<span style="color: #007800;">TICKET_ID</span>=<span style="color: #007800;">$i</span>
<span style="color: #007800;">$SQLITE_CLIENT</span> <span style="color: #007800;">$DB_PATH</span><span style="color: #ff0000;">&quot;trac.db&quot;</span> <span style="color: #ff0000;">&quot;DELETE FROM ticket WHERE id=<span style="color: #007800;">$TICKET_ID</span>&quot;</span>
<span style="color: #007800;">$SQLITE_CLIENT</span> <span style="color: #007800;">$DB_PATH</span><span style="color: #ff0000;">&quot;trac.db&quot;</span> <span style="color: #ff0000;">&quot;DELETE FROM ticket_change WHERE ticket=<span style="color: #007800;">$TICKET_ID</span>&quot;</span>
<span style="color: #007800;">$SQLITE_CLIENT</span> <span style="color: #007800;">$DB_PATH</span><span style="color: #ff0000;">&quot;trac.db&quot;</span> <span style="color: #ff0000;">&quot;DELETE FROM attachment WHERE type='ticket' and id=<span style="color: #007800;">$TICKET_ID</span>&quot;</span>
<span style="color: #007800;">$SQLITE_CLIENT</span> <span style="color: #007800;">$DB_PATH</span><span style="color: #ff0000;">&quot;trac.db&quot;</span> <span style="color: #ff0000;">&quot;DELETE FROM ticket_custom WHERE ticket=<span style="color: #007800;">$TICKET_ID</span>&quot;</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.motarion.net/2009/07/12/trac-supression-de-ticket-en-masse/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
	</channel>
</rss>

