zoukankan      html  css  js  c++  java
  • SongTaste音乐下载器

          SongTaste音乐下载器

      Songtaste是一个非常好的音乐推荐网站, 奈何和duomi搅合在一起, 导致下载音乐非常的麻烦, 现在写了一个简单的"下载器", 通过它可以下载给定音乐ID,来下载具体的音乐.

    ID来自

    红色方块内的id编码,

    注意使用google浏览器或者其他的时候, 注意跨域ajax调用的限制, Google 为启动参数添加--disable-web-security.

    打开网页:

    点击下载 就可以下载了~

    如下是代码:

      1 <html>
      2     <head>
      3         <!-- 新 Bootstrap 核心 CSS 文件 -->
      4         <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.2.0/css/bootstrap.min.css">
      5 
      6         <!-- 可选的Bootstrap主题文件(一般不用引入) -->
      7         <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
      8 
      9         <!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
     10         <script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
     11 
     12         <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
     13         <script src="http://cdn.bootcss.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
     14         
     15         <!--arttemplate-->
     16         <script type="text/javascript" src="https://rawgithub.com/aui/artTemplate/master/dist/template-native-debug.js"></script>
     17         <script>
     18             (function(){
     19                 window.list = [];
     20                 var WrtSongLine = function(SongID, SongName, Singer, IsBox, Idx, SongUrl, MidUrl){
     21                     
     22                     //MidUrl中存在rayfile, 则替换SongUrl
     23                     if(MidUrl.indexOf('rayfile') < 0){
     24                         SongUrl = $.ajax({
     25                             type:'POST',
     26                             url:'http://www.songtaste.com/time.php',
     27                             cache:false,
     28                             data:'str='+MidUrl+'&sid='+SongID,
     29                             dataType:'html',
     30                             async:false
     31                         }).responseText;
     32                     }
     33                     //加入全局中
     34                     list.push({name:SongName,url:SongUrl});
     35                 }
     36                 //加入全局函数中
     37                 window.WrtSongLine = WrtSongLine;
     38                  
     39                 //打印,包含WrtSongLine函数的文本
     40                 var print = function(source){
     41                     //更新list为空
     42                     list = [];
     43                     var data ={
     44                         list:list
     45                     };
     46                     eval(source);
     47                     var htmlStr = template('showtpl',data);
     48                     $("#show").html(htmlStr);
     49                 };
     50                 var go = function(){
     51                     var ids = $("#ids").val();
     52                     if(ids == '' ){
     53                         alert("ids不能为空");
     54                         return;
     55                     }
     56                     ids = ids.trim();
     57                     $.ajax({
     58                         url:'http://www.songtaste.com/playmusic.php?song_id='+ids,
     59                         async: false,
     60                         dataType:'text',
     61                         type:'GET',
     62                         error:function(){
     63                             alert("请求数据失败");
     64                         },
     65                         success:function(data){
     66                             var source = data.match(/WrtSongLine.*/gmi);
     67                             //去除第一条
     68                             source.shift();
     69                             var script = source.join('');
     70                             print(script);
     71                         }
     72                     
     73                     });
     74                 };
     75                 
     76                 $(function(){
     77                     //bind click
     78                     $("#go").click(go);
     79 
     80                 });
     81             })();
     82         </script>
     83     </head>
     84     <body>
     85         <div style="80%;margin-left:10%;">
     86             <h3 >输入格式为: 1534606,2218413,3420496,3009756,1813717</h3>
     87             <div class="input-group">
     88                 <input type="text" class="form-control" id="ids">
     89                 <span class="input-group-btn">
     90                     <button class="btn btn-default" type="button" id="go">Go!</button>
     91                 </span>
     92             </div><!-- /input-group -->
     93             </br>
     94             </br>
     95             </br>
     96             <div id="show">
     97             </div>
     98             <!--输入list格式为 {name,url} -->
     99             <script type="text/html" id="showtpl">
    100                 <table class="table table-striped">
    101                     <%for(var i = 0;i<list.length;++i){%>
    102                         <tr>
    103                             <td><%= list[i].name%></td>
    104                             <td><a href="<%= list[i].url %>" download="<%= list[i].name%>" >点击下载</a></td>
    105                         </tr>
    106                     <%}%>
    107                 </table>
    108             </script>
    109         </div>
    110     </body>
    111 </html>
  • 相关阅读:
    python-进阶-优雅的python写法
    springMVC3学习(十一)--文件上传CommonsMultipartFile
    springMVC3学习(十)--注解式控制器
    CSS3/jQuery自定义弹出窗口
    window.open()详解及浏览器兼容性问题
    空格&nbsp在不同浏览器中显示距离不一致问题解决方法
    jQuery拖动调整表格列宽度-resizableColumns
    jQuery表格排序组件-tablesorter
    springMVC3学习(九)--redirect和forward跳转
    springMVC3学习(八)--全局的异常处理
  • 原文地址:https://www.cnblogs.com/tickobject/p/3826623.html
Copyright © 2011-2022 走看看