Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
Вот и мне это интересно.neonmill сказал(а):или как его сделать поделитесь пожалуйста
Есть довольно неплохой скрипт-основа. Естественно требует доработки под Ваши задачи и сайт.1moment сказал(а):Вот и мне это интересно.neonmill сказал(а):или как его сделать поделитесь пожалуйста
Очень любытно. Сделайте полноценный гайд тут.nodeus сказал(а):Если интересно, могу подсказать в каком направлении нужно думать.
Да, интересно. Интересует еще для скайпа бот.Drakkar сказал(а):Очень любытно. Сделайте полноценный гайд тут.nodeus сказал(а):Если интересно, могу подсказать в каком направлении нужно думать.
import configtb
import requests
import xmltodict
import os
import telegram
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
import logging
# -*- coding: utf-8 -*-
token = str('846592746:LDFGFqBi2:85JYFhfn0pfkbjg94LFjghv2Zl') # @your_bot token (тут он изменён естественно)
URL = str("https://api.telegram.org/bot" + token + "/") # часть урла к api telagram
rbPas = str('password') # пароль к radioboss
rbPort = str('0000') # порт radioboss
def get_np():
global nowpl
getPlInfo = {'pass': rb_Pas, 'action': 'playbackinfo'}
r = requests.get('http://hyperadio.ru:' + rb_Port + '/', params=getPlInfo)
doc = xmltodict.parse(r.content)
nowpl = {'t_artist': doc['Info']['CurrentTrack']['TRACK']['@ARTIST'],
't_title': doc['Info']['CurrentTrack']['TRACK']['@TITLE'],
't_album': doc['Info']['CurrentTrack']['TRACK']['@ALBUM'],
't_year': doc['Info']['CurrentTrack']['TRACK']['@YEAR'],
't_genre': doc['Info']['CurrentTrack']['TRACK']['@GENRE'],
't_comment': doc['Info']['CurrentTrack']['TRACK']['@COMMENT'],
't_filename': doc['Info']['CurrentTrack']['TRACK']['@FILENAME'],
't_duration': doc['Info']['CurrentTrack']['TRACK']['@DURATION'],
't_playcount': doc['Info']['CurrentTrack']['TRACK']['@PLAYCOUNT'],
't_lastplayed': doc['Info']['CurrentTrack']['TRACK']['@LASTPLAYED'],
't_intro': doc['Info']['CurrentTrack']['TRACK']['@INTRO'],
't_outro': doc['Info']['CurrentTrack']['TRACK']['@OUTRO'],
't_casttitle': doc['Info']['CurrentTrack']['TRACK']['@CASTTITLE'],
't_listeners': doc['Info']['CurrentTrack']['TRACK']['@LISTENERS'],
'nt_artist': doc['Info']['NextTrack']['TRACK']['@ARTIST'],
'nt_title': doc['Info']['NextTrack']['TRACK']['@TITLE'],
'nt_album': doc['Info']['NextTrack']['TRACK']['@ALBUM'],
'nt_year': doc['Info']['NextTrack']['TRACK']['@YEAR'],
'nt_genre': doc['Info']['NextTrack']['TRACK']['@GENRE'],
'nt_comment': doc['Info']['NextTrack']['TRACK']['@COMMENT'],
'nt_filename': doc['Info']['NextTrack']['TRACK']['@FILENAME'],
'nt_duration': doc['Info']['NextTrack']['TRACK']['@DURATION'],
'nt_playcount': doc['Info']['NextTrack']['TRACK']['@PLAYCOUNT'],
'nt_lastplayed': doc['Info']['NextTrack']['TRACK']['@LASTPLAYED'],
'nt_intro': doc['Info']['NextTrack']['TRACK']['@INTRO'],
'nt_outro': doc['Info']['NextTrack']['TRACK']['@OUTRO'],
'nt_casttitle': doc['Info']['NextTrack']['TRACK']['@CASTTITLE'],
'play_pos': doc['Info']['Playback']['@pos'],
'play_len': doc['Info']['Playback']['@len'],
'play_state': doc['Info']['Playback']['@state'],
'playlist_pos': doc['Info']['Playback']['@playlistpos']}
return nowpl
def nowplay():
global nowpl
get_np()
secs = int(nowpl['play_pos']) // 1000
mins = secs // 60
secs = secs - mins * 60
nowplay_str = str('HYPERADIO.RETROSCENE.ORG'+'\n\n'+'Now playing: ' + nowpl['t_casttitle'])+'\n\n'+str('Duration: '+ nowpl['t_duration'])+str(' Play position: ' + str(mins) + 'min ' + str(secs)+'sec')+'\n\n'+str('Next track: '+ nowpl['nt_artist'] + ' — ' + nowpl['nt_title']) + '\n'+str('Next track duration: ' + nowpl['nt_duration'])+'\n\n'+str('Current listeners: ' + nowpl['t_listeners'])
return nowplay_str
def np(bot,update):
global nowpl
update.message.reply_text(nowplay())
print ('Bot: ' + update.message.from_user['username'] + ' request Nowplay for ' + nowpl['t_casttitle'] + '\n')
HYPERADIO.RETROSCENE.ORG
Now playing: Tufan Uysal (SoNiC) - B1 (rotation mix) - sid.oth4.com
Duration: 04:51 Play position: 2min 38sec
Next track: Stefan Uram (Orcan) — Tchernobyl's Tears
Next track duration: 03:55
Current listeners: 1
def send_like():
global nowpl
global user_name
get_np()
songRequest = {'pass': rb_Pas, 'action': 'songrequest', 'filename': nowpl['t_filename'], 'message': user_name}
r = requests.get('http://hyperadio.ru:' + rb_Port + '/', params=songRequest)
return None
dp.add_handler(CommandHandler("start", start))
dp.add_handler(CommandHandler("help", help))
dp.add_handler(CommandHandler("like", like))
dp.add_handler(CommandHandler("np", np))
dp.add_handler(CommandHandler("dl", dl_track))
dp.add_handler(CommandHandler("art", dl_art))
баловство ........бот просто реагирует на команды, приходящие от пользователей.
— команда добавления трека в плейлист по запросу
— команда вывода информации по играющему треку
— команда по которой бот отправляет играющий трек в виде аудиофайла пользователю в телеграм
— команда по которой бот отправляет album art в виде картинки пользователю в телеграм
Alex Ivanov сказал(а):баловство ...
зачем это? Делать из радио второй Яндекс-недорадио-музыку?
Спасибо за проделанную работу. Но к сожалению далеко не все пользуются телеграмом.scorp сказал(а):Собственно всё. Я год мечтал о таком боте в телеграме и искал людей, кто мог бы мне помочь с реализацией. Так я никого и не нашел, поэтому взял себя в руки и научился всему сам. А сейчас меня это всё настолько увлекло, что я всеръёз начал изучать Python, уж очень мне он понравился и планирую переделать страничку своего радио уже с использованием скриптов на питоне.
Drakkar сказал(а):Вот бы сделать веб-интерфейс заказа песен на сайте.
Согласен быть тестером данного нововведения. Ну, когда сделаешь. Стучи в скайп kamzvernodeus сказал(а):Планирую сделать это у себя в дальнейшем.
Некоторые радио более интерактивные, чем другие. Почему нет?Alex Ivanov сказал(а):зачем это? Делать из радио второй Яндекс-недорадио-музыку?
удовлетворят просьбы слушателей поисковики и спец. муз. сайт платные/беспатентные.Это лишь для того, чтобы удовлетворить просьбы слушателей отдельно взятого интернет-радио. К вашему радио это не имеет никакого отношения, прошу заметить.
Есть уже готовый довольно неплохой скрипт-основа. Естественно требует доработки под Ваши задачи и сайт.Drakkar сказал(а):Вот бы сделать веб-интерфейс заказа песен на сайте.
Alex Ivanov сказал(а):Точно такая -же система запросов работает на 101.ru, куча мертвых р/проектов на любой вкус и жанр... пройдите и осмотритесь.
Чем не угодил XML? Для парсинга этого формата во всех основных языках есть встроенные средства. API предоставляет достаточно функций, тем более если вам просто нужно сделать запросы песен. Как пример использования API можете посмотреть на RadioBOSS Cloud: https://www.djsoft.net/smf/index.php/topic,5001.0.htmlscorp сказал(а):жду когда РБ переведут на БД и сделают нормальный удобный АПИ, потому что все эти эти извращения сейчас с парсингом XML
вот пожалуйста готовые собранные архивы bulba.untergrund.net/music.htmНазовите хотя бы одно радио, которое предлагает к прослушиванию качественно преобразованные чиптюн модули pt2 и pt3?
ну, благодаря такому API мы на своем интернет проекте радио как раз сделали интерактив со слушателями, а это ведущие, чат, общение, заказ песен .. а что еще нужно? Осталось только еще предоставить возможность своим слушателям за нас программировать эфир р/станции на ближайшие сутки ))) или это лучше сделает бот из месенджера?API предоставляет достаточно функций,
Стало очень удобно. Бот умеет показывать играющий трек (nowplaying), добавлять его в плейлист по заказу (like/request), скачивать album art и сам трек.
.....бот просто реагирует на команды, приходящие от пользователей.
— команда добавления трека в плейлист по запросу
— команда вывода информации по играющему треку
— команда по которой бот отправляет играющий трек в виде аудиофайла пользователю в телеграм
— команда по которой бот отправляет album art в виде картинки пользователю в телеграм
аргументированный негатив : Делать из радио второй Яндекс-недорадио-музыкуРазберитесь в теме, пожалуйста и тогда лейте свой аргументированный негатив.
Знаю я что есть готовые функции и классы для парсинга, но данных там не хватает. Я писал, просил, но вы отказались допилить пару удобств. Поэтому ждем базу, там эти неудобства удет сами по себе и ничего Вас просить и упрашивать не придется, если конечно вы не додумаетесь там что-то ограничить.djsoft сказал(а):Чем не угодил XML? Для парсинга этого формата во всех основных языках есть встроенные средства. API предоставляет достаточно функций, тем более если вам просто нужно сделать запросы песен. Как пример использования API можете посмотреть на RadioBOSS Cloud: https://www.djsoft.net/smf/index.php/topic,5001.0.htmlscorp сказал(а):жду когда РБ переведут на БД и сделают нормальный удобный АПИ, потому что все эти эти извращения сейчас с парсингом XML