Day28 LINE BOT & NBA - 球员数据查询

今天因为时间的关系,原本应该要完成两个功能,但是先完成一个,段考完再来补QQ

今天要实现的功能有

  • 查询特定球员数据

构思

同样的,我们要先思考使用者该如何获取资讯
首先,每个球员都必定属於某个特定球队,所以可以依此作为判断标准
其次,每个球队中的背号必定都是唯一的,所以可以依此作为判断标准

先设计好两个 Flex Message

  1. 显示所有球队
  2. 显示该球队所有球员

第一个部分之前已经设计过,只需要在 postback action 的 value 稍作修改即可

网页观察

一样先到网页上观察 https://tw.global.nba.com/teams/roster/#!/hawks
打开浏览器的开发者工具,找到 network ,选择 XHR

发现到里面的 playerstats.json 有我们需要的资料

资料的格式是以每个球员做为区隔,正好和我们要的是相符的

获取资料

我们需要的资料包括

  • 球员基本资料
    • 姓名
    • 所属球队
    • 在球队的位置
    • 身高/体重
    • 选秀年
    • 年资
    • 球员背号
    • 球员 ID
  • 例行赛基本资料
    • 比赛场数
    • 先发次数
    • 场均时间
    • 投篮%
    • 三分球%
    • 罚球%
    • 平均篮板
    • 平均助攻
    • 平均得分

接下来我们要写三个 function

  1. GetTeam2()
  2. GetPlayers.py
  3. GetPlayer.py

GetTeam2()

可以直接改写昨天的 GetTeam.py ,这边稍微提一下要修改的内容
在 action 的部分修改成合适的内容

Team_out['contents'][0]['action']['data'] = 'SelectPlayerFrom {}'.format(Team['code'])
Team_out['contents'][1]['action']['data'] = 'SelectPlayerFrom {}'.format(Team['code'])      

GetPlayers.py

这边要获取特定球队的所有球员
先制作一个版型,可以提供加入球员基本资讯

接下来将版型分成三个部分

  1. TeamPlayers.json
    存放所有讯息资讯
  2. Seperater.json
    等同 Flex Message 的 Seperater
    分开放比较方便
  3. Player.json
    存放单笔球员资讯

接下来流程如下

  1. 发送 requests
  2. 接收 responce
  3. 将球队基本资料放入 TeamPlayers.json
  4. 将球员资讯依序放入 Player.json , 并推入至 TeamPlayers.json

GetPlayer.py

这边要获取特定球队的特定球员讯息
先制作一个版型,存放上述的相关资讯

接下来将版型分成了四个部分

  1. PlayerDetail.json
    这里要存放所有的讯息
  2. Seperater.json
    等同 Flex Message 的 Seperater
    分开放比较方便
  3. PlayerDetail-Card.json
    这里会存放球员的基本讯息
  4. PlayerDetail-Profile.json
    这里会存放球员的基本讯息
  5. PlayerDetail-Avg.json
    这里会存放球员例行赛的平均数据

Rich Menu

最後一样稍微修改一下我们的 Rich Menu
将第四个 Buttom 改成 球员数据

成果

最终测试结果如下:

  • 选择球队
  • 选择球员
  • 球员数据

後记

很仓促的在大约4个小时完成了这份
内容说实话真的还很粗糙,还有很多可以再做的更好的地方
总之还是希望大家玩得开心罗!

参考资料

今日练习 Github 连结
NBA
LINE Flex Message Simulator
W3schools HTML color picker
初学者看懂 NBA 数据


<<:  day29-认识一些不太熟的伪类选择器(下)

>>:  Processing - Day 28 数学好棒棒 第三篇章

Youtube Reports API 教学 - 告一个段落

「鲑鱼均,因为一场鲑鱼之乱被主管称为鲑鱼世代,广义来说以年龄和脸蛋分类的话这应该算是一种 KNN 的...

Day 18 - WooCommerce 测试环境建立 (下)

昨天我们安装完 WooCommerce 和修改 wp-config.php 关於 debug 的设定...

[Day27]程序菜鸟自学C++资料结构演算法 – 堆积排序法(Heap sort)

前言:在第16、17天的时候有介绍到堆积,今天要利用堆积的特性来实现排序法,忘记或不知道堆积是甚麽的...

(笔记D1) Spring MVC 框架

1-1 Spring MVC 特质 功能建构在 Servlet、JSP 规格基础上面发展,必须透过 ...

【Day29】清除轨迹 ─ Linux篇

哈罗~ 昨天介绍清除Windows Event log, 我们今天要介绍清除Linux的轨迹。 清除...