#!/usr/bin/perl
######################################################
# Music Files - v.1.0 
#
# Copyright (c) 1999 HITEX
# Author: Vokhmianin Vladimir
# 	nightelf@zr.ru
# 	vladimir@hitexchange.ru
######################################################

	use lib '/srv/www/vhosts/mp3s.ru/lib';

  use wclibvars qw(%config);
  use wclib qw($dbh);
	use mp3s;
  use strict;

	require '../date.pl';

# ----------------------
# Connect to the database
  wclib::db_connect();

print qq~
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">
<rss version="0.91">
    <channel>
        <title>news.mp3s.ru</title>
        <description>Последние музыкальные новости, Рецензии на диски, коллекция текстов песен, поисковая система по mp3 файлам</description>
        <link>http://www.mp3s.ru</link>
    </channel>
    
    <image>
        <title>Удобный музыкальный портал...</title>
        <url>http://www.mp3s.ru/img/partner/logo_8831.gif</url>
        <link>http://www.mp3s.ru</link>
        <width>88</width>
        <height>31</height>
    </image>
~;

&news();

print qq~
</rss>
~;

  wclib::db_disconnect;

###########################################################################
# news - Последние новости
###########################################################################
sub news {

	my ($date_0,$week_0) = main::get_today(1);
	my ($date_1,$week_1) = main::get_today(-1);
	
	my $query = qq!
		SELECT id, title, info, DATE_FORMAT(date_up,'%d-%m-%Y %H:%i')
		FROM News
		WHERE date_up BETWEEN '$date_1' AND '$date_0'
		ORDER BY date_up DESC
 	!;
 	my $sth = $dbh -> prepare ($query) || wclib::panic("Соединение с базой невозможно", $dbh->errstr.":".$query);
 	$sth -> execute() || wclib::panic("Соединение с базой невозможно", $sth->errstr.":".$query);

	my $i=0;
	while (my ($id,$title,$sinfo,$date_up) = $sth -> fetchrow_array) {
		mp3s::news_review(\$sinfo);
		$title=~s/[«|»]/\"/ig;
		$sinfo=~s/[«|»]/\"/ig;
		$sinfo=~s/\n/ /ig;
		$sinfo=~s/  / /gc;
		$title=quote($title);
		$sinfo=quote($sinfo);
		my $link=$date_up;
		$link=~s/(\d\d)-(\d\d)-(\d\d\d\d) .*/$3\/$2\/$1/;
		print qq~
    <item>
        <title>$title</title>
        <link>http://news.mp3s.ru/view/news/$link/$id.html</link>
        <description>$sinfo</description>
    </item>
		~;
	}
 	$sth -> finish;

}

sub monthnum
# Usage:  $month_number = &monthnum($month_name)
{
	my($num) = @_;
	my(@names) = (
		'января','февраля','марта','апреля','мая','июня','июля','августа',
		'сентября','октября','ноября','декабря');
	return $names[$num];
}

# put a string value in double quotes
sub quote {
    local($_) = shift;
    s/&/&amp;/g;
    s/\"/&quot;/g;
		s/\'/&apos;/g;
    s/>/&gt;/g;
    s/</&lt;/g;
#		s/\|/\%7C/g;
#    s/([^\040-\176])/sprintf("&#x%x;", ord($1))/ge;
    return $_;
#    return qq("$_");
}

#sub esc {
#  local($_) = shift;
#  if (/[\x00-\x08\x0B\x0C\x0E-\x1F\x7f-\xff]/) {
	# \x00-\x08\x0B\x0C\x0E-\x1F these chars can't be represented in XML at all
	# \x7f is special
	# \x80-\xff will be mangled into UTF-8
#	require MIME::Base64;
#	my $nl = (length($_) < 40) ? "" : $NL;
#	my $b64 = MIME::Base64::encode($_, $nl);
#	return $nl.$b64, qq( encoding="base64");
#  }

#  s/&/&amp;/g;
#  s/</&lt;/g;
#  s/]]>/]]&gt;/g;
#  s/([^\040-\176])/sprintf("&#x%x;", ord($1))/ge;
#  return $_, "";
#}

#######################################################
# EOF Last Update: 28.04.02 9:17:48, Vokhmianin Vladimir

