如何把steam好玩的游戏上所有游戏买下来,要花多少钱

买下 Steam 所有游戏要花多少钱?
买下Steam所有游戏需要
$198,400.96 或¥651,982!
游戏和 DLC 数量:20,129(美区),17,531(中区)天极传媒:天极网全国分站
您现在的位置:
& &&Steam上发行的所有游戏破一百万
2015年Steam上发行的所有游戏破一百万天极网游戏频道 14:36
【百万玩家最喜爱的游戏娱乐媒体,把最带劲的娱乐资讯,最权威的游戏推荐,最齐全的手游礼包放进你的口袋,却不用你多安装一个APP,还等什么?赶紧就关注微信号 【kdyx91】 每日七点不见不散~】
  截止今日,在过去的2015年有11款游戏的累计Steam销量超过了一百万套。这都归功于Steam冬季大促,考虑到其中监狱建筑师的提前版测试了很久,实际15年发行的游戏有十款超过了一百万。这些基本都是我们介绍过的熟面孔。
  11:DiRT3完全版。115万套。英国开发商CodeMasters制作的,号称是有史以来最大型的拉力赛游戏。准确的说,只有它的Mac版本是发行与2015年的,这款全平台游戏早在2011年就登陆了和XBoxOne,Steam上的完全版包含了所有的DLC。
  10:死光。波兰开发商开发的第一人称开放世界生存冒险游戏。122万套。波兰人今年是开挂了。
  9:巫师3。129万套。波兰公司CDProjektRED的年度神作。其实大家更多的是爱好昆特派。
  8:围攻。142万。英国学霸开发,学霸炫技必备的物理模拟神器。
  7:监狱建筑师。151万。英国开发商introversion从2012年开始alpha众筹的这款游戏在15年终于迎来了正式版的发布。
  6:城市天际线。190万套。芬兰的九人开发团队制作的超越模拟城市的极品城市经营类游戏。
  5:H1Z1,215万。这款僵尸世界生存游戏的开发商Daybreakgames的前身竟然是大名鼎鼎的SOE,的在线游戏部门,EQ系列的缔造者。游戏只公布会登陆PS4就不难明白了。
  4:火箭联盟,开着大脚车踢足球。220万套。十月公众号第一次推荐这款游戏的时候,Steam销量只有160万,冬季促销威力果然巨大。
  3:方舟、进化生存。238万套。开放世界科幻游戏,在未知的荒岛建立基地,猎杀与圈养恐龙。前负责独立游戏者关系的老大JesseRapczak成立的Wildcard工作室研发,外包合作是埃及公司InstanctGames。
  2:辐射4。11月登陆Steam的辐射4,几乎没有打过折(冬季特卖还是折了节操,87折),275万的销量属实惊人。
  1:,384万。年度冠军。其中中国玩家竟然有创纪录的35万。基本上是国内单机游戏的年度游戏销量冠军了。(或许河洛的更多一些?)不管怎样,GTA说明了好游戏在中国并不缺市场的事实。
  前五名清一色的美国公司。全部11款中六款是独立游戏。
  此外2015年的其他游戏中,奇异人生也有97万的销量,而神界原罪加强版有96万。合金装备、幻痛创下了85万的Steam销量。Undertale来势汹汹,九月上市起销量逐月增加,已经销售79万套。
  而2014年的游戏在经过了又一年大小折扣之后,至今超百万销量游戏共21款。
  不知道2016年即将到来的游戏中还会有多少惊喜。
(作者:网络责任编辑:戴颜艳)
天极新媒体&最酷科技资讯扫码赢大奖
* 网友发言均非本站立场,本站不在评论栏推荐任何网店、经销商,谨防上当受骗!
数码整机手机软件社区昵称:只需要POI就行了
本帖最后由
22:33 编辑
算了下支付宝内 入坑至今 购物里面 充值 美刀 和 以前群内找代购买包包 一共花了243.86元(没算错的前提下)。当然 时间不能算。。。比之前想象中的少了一点点。现在开始空闲的时候慢慢赚。。。迟早都会回来的。。。
想起来 当时玩论坛的时候买过一些散KEY直接转账的。。就当250吧。。。
社区昵称:Geek_LovePlay
这也是够便宜的
刚玩论坛的时候随便送的游戏都是好的。。之后遇到游戏就在想肯定绿了。。。&
社区昵称:No sleep
请问楼主你现在是千手观音么
没到那程度。。。&
社区昵称:?????????
年轻人。你们赶上好时代了。。。现在过k分分钟的事情。又便宜又快。。要不是有key激活限制拉低速度。。。。
喜+1的病治好了。。现在只是娱乐之中+1 。。。抱着不花钱的心态来的。&
社区昵称:Meollars
想必是250刀
。。。RMB&
社区昵称:dgbjx
。。。好便宜
还行。要是 不开箱子的话 就一个CSGO 更便宜。。&
社区昵称:??A君??
400个游戏才250块钱。。
是啊。算入门了。。喜+1继续。。就是不想花钱而已。&
社区昵称:Flixon
plz use steamdb
社区昵称:冰甜雪帝
65个游戏(有的本以为会玩,结果放弃了)加一堆免费领取(也有2、30个吧)
花了1000多...和一般人比当然差远了
以后我买游戏还是要多想想吧
1.png (20.66 KB, 下载次数: 0)
23:03 上传
会记账也是666&
这记账的习惯很好啊,我以后也应该记账,算算自己一年要浪费多少钱→_→&
太贵的我没买。理性游戏确实能变得更好。&
社区昵称:maosj239
本帖最后由 maosj 于
11:24 编辑
我账号上有63个游戏,总支出为575.01元(包含30元未使用的钱包充值),手头上还有一点多余的HB包包key,过段时间发个交易帖出售后估计能把总支出降到500元左右。
如果我能像楼主一样经常倒腾市场上的皮肤枪,估计可以赚不少零花钱。
我游戏数虽然不多,不过都是些不错的我会去玩的游戏。
玩的开心就好。你肯定是属于 垃圾喜+1 不用的。只买自己要的&
社区昵称:Legion
200+块400游戏?楼主是怎么办到的
4月份入坑 累计起来的。。&
社区昵称:Leo
我逢免费KEY必领。。。感觉也差不多250+花费了。。。但游戏数还差LZ好远
主要我人品好点。中奖率高。。其次我空闲的时候搞市场。。能赚点&
社区昵称:hungry小浩纸
本帖最后由 hungry小浩纸 于
23:35 编辑
今年正式入坑,这是steam商店的
QQ截图10.jpg (12.99 KB, 下载次数: 0)
23:09 上传
paypal买包(含GMG)115刀
杉果加欢乐包在支付宝上有250+&&重新统计下是350+
steam手柄416
这都2200+了
似乎还忘记了某项花费了
对了,还有摩点的350+
卧槽2700,要死要死
都是土豪。。我以前玩游戏花费也高。现在不舍得了&
社区昵称:ky3000 ? つ?_??つ
看了下楼主的游戏时间原来真的是纯+1
嗯。。好玩的可能玩下。其他可能就+1 就好了&
社区昵称:Meollars
居然是250rmb,那辐射4这种大作是怎么搞到的
原来如此……我基本不碰市场orz&
已经申请退款了。。钱包攒的钱。都是市场赚的。退了钱后预计钱包还300 买其他游戏去。。&
社区昵称:Spooky Alcohol
赶紧4000~
臣妾做不到啊&
发自移动设备 - 你的掌上 SteamCN 社区
社区昵称:TaeYEunJHeey
本帖最后由 lmmmr 于
23:58 编辑
一个GTAV加辐射4就过250了,楼主也是屌
社区昵称:一旁冷笑
看成4000了
社区昵称:魔法的猫咪
本帖最后由 魔法的猫咪 于
00:00 编辑
今年9月21才入坑到现在游戏数350+,没买什么大作,就一些打折游戏和包加起来就560rmb了,其中快100的steam充值(还没算上买了个xboxone手柄220)
社区昵称:魔法的猫咪
本帖最后由 魔法的猫咪 于
00:11 编辑
楼主你只花250元不到的价位是怎么买到辐射4和剩下几百个游戏的啊,我就是一堆打折和包游戏都比你多一倍啊刚刚已经看到楼主上面的留言了,真厉害,我不太知道怎么靠市场赚大钱
以后要像楼主学不能在买买买了,
我娱乐为主。。。&
社区昵称:bluettmoon B& skins/keys BTC
像我这种怎么算。。。。
要说花钱吧,确实几大千花出去了。
但是算支付宝余额吧,好像还涨了。。。
社区昵称:Shikunn
我就记得黑五两三千,圣诞不到四千,这还只是钱包,支付宝和paypal的不知道有多少
然而还是比玩网游便宜。。。
社区昵称:jsw_yy
10.png (221.35 KB, 下载次数: 0)
00:45 上传
首页这几个就花费超4K了
真爱粉。话说这玩意能当收音机么。。。&
社区昵称:Ming Dynasty
3年下来大概有6000+ 不过只有565个游戏。 橘子的战地是必入的。
去年预购的多,各种30刀走起。结果全是坑爹货。
比如说payday2,预购犯罪版补了大半DLC出了年度版。
30刀买了横扫千星。ARMA3客服删除了俄区KEY之后得知三个月原则,30刀再购入之后喜加一。
这种例子不胜枚举。现在连买巫师3这种集大成作品我都耐心等圣诞。
社区昵称:Daniel Wang
我只想说,我一个预购就要400+。。。楼主400个游戏才200= =
社区昵称:Biscuit
由入坑至今天刚好花了港币$2886
发自移动设备 - 你的掌上 SteamCN 社区
社区昵称:akida
我感觉我花的钱应该不比LZ多很多的样子,因为很多游戏都是拿免费挂卡的钱买的
社区昵称:落閻
本帖最后由 落阎 于
13:26 编辑
都上千了,然而才80几个···
坑.jpg (12.61 KB, 下载次数: 0)
13:25 上传
社区昵称:vevy
我当初400个花了2k多。。。你真会省钱。。。。
社区昵称:天惊风
刚入坑,枭雄就去了220了
SteamCN 蒸汽动力 & Chinese Steam User Fan Site.
来浏览本站
19:16, PE: 0.460244s , QE: 316, Gzip On, Redis On.买下steam所有游戏要多少钱? 需要18万美元!_steam最新优惠_传送门
买下steam所有游戏要多少钱? 需要18万美元!
steam最新优惠
steam上找到你想要的游戏。既然steam游戏如此之多,那么买下steam上所有游戏需要多少钱呢?steam又有多少游戏呢?国内的一位程序员为此写了程序,并将其公布在了上。不知道有没有土豪想要来一次一劳永逸的剁手。喜+18531...买下一个国区游戏 需要615.470人民币....这个时候不打一波广告对不起自己!!!有这种代购的土豪请务必找我!0BHVV-KKNTL-VCQFJJET2B-Q3ITE-P4M2N7JKEY-MKF8K-D6K36程序员请继续....普通人请留步,下面是从作者那扒来的网站制作方法.....这个网站非常简单,涉及到的技术只要初步掌握即可实现。(...我看这么久都没懂)以下是我用到的技能和工具,你可以根据自己情况调整技能:PythonNode.js基本的 HTML、CSS 和 JS基本的 Linux 技能基本的 Nginx 技能翻墙能力会用 GitHub工具:一台 VPS一个域名一个编辑器(我用的 Sublime Text 3)调查首先去 Google 一下“How much to buy all steam games”,搜到这个网站:,截图如下哇,九万多美元!真不少。再往下看,最后一次更新时间是 2014 年光棍节。是不是作者在光棍节脱单了所以放弃了 Steam?继续往下看,网站还给出了计算方法,非常简单:from steamapiwrapper.SteamGames import Gamesgames = Games()full_price = 0.0discounted_price = 0.0for game in games.get_all('US'): if game.price != 0:
discounted_price += game.discounted_price
full_price += game.full_price哇真的好简单!然后我去看了一下这个steamapiwrapper库,2 years ago2 years ago2 years ago。。。。。。。这就是网站作者自己写的库吧!一定是脱团之后弃坑了吧!!!好吧,关掉网页,回到 Google 继续往下看。嗯……没了。其他的网页都是一些统计性质的文章,Steam 更新频率极高,这类文章基本上是一发表就过时。怎么办?作为无所不能的程序员,当然是自己写一个啦!既然两年前能实现,两年后一定也能搞定!看看我们收集到了什么有用的东西:一段计算代码一个 Steam API 库那就从这里开始吧。修改代码以下代码不包含任何最佳实践,Just For Fun!首先来看看这段两年前的代码还能否运行,如果能,那我们只要写个网页展示就可以了。steamapiwrapper没有上传到 pip,所以我们只能下载代码到本地。首先登陆 VPS:ssh root@xxx.xxx.xx.x提示:本文的命令和代码是意识流,重在介绍思想和流程,具体的细节请自行 Google(别百度,百度一下你就被坑)。然后用virtualenv创建 Python 虚拟环境,不影响本机的 Python 配置:$ mkdir /steamtuhao$ cd /steamtuhao$ pip install virtualenv$ virtualenv venv$ virtualenv -p /usr/bin/python2.7 venv执行完会在根目录下的steamtuhao目录中创建一个 Python 虚拟环境,并且指定 Python 版本为 2.7(steamapiwrapper基于 Python 2.x 开发)。然后开启虚拟环境,下载第三方库:$ source venv/bin/activate$ git clone :naiyt/steamapiwrapper.git$ cp -avr steamapiwrapper/steamapiwrapper ./temp$ rm -rf steamapiwrapper$ mv temp steamapiwrapper最后三行是不是看懵了?GitHub 克隆下来的库并不能直接导入 Python 中,需要把里面真正的 Python 包复制出来。所以这里的操作其实是:复制出来我们要用的包、删掉整个项目、重命名包。最后新建一个文件,把网站中提到的那段代码复制进去:from steamapiwrapper.SteamGames import Gamesgames = Games()full_price = 0.0discounted_price = 0.0for game in games.get_all('US'): if game.price != 0:
discounted_price += game.discounted_price
full_price += game.full_price$ vim calTotalPrices.pyOK,运行一下试试:$ python calTotalPrices.py报错了。具体的错误信息我忘了保存,大概就是说 JSON 不能解析None。打开出错的SteamGames.py定位过去看下,发现调用了一个_open_url函数,搜索一下这个函数看看…………没找到。这哥们绝对是恋爱了,否则不可能犯这么弱智的错误。经过@Ralph-Wang 提醒,发现_open_url是继承自SteamBase.py中的SteamAPI类。那应该和下面提到的问题一样,因为 URL 里面编码了参数,导致请求返回 null。好吧,看上下文,这里应该是请求一个 URL 并解析返回的 JSON 内容。那我们直接用requests这个库就行。$ pip install requests然后修改SteamGames.py文件:import requests...def _get_games_from(self, url):
"""Generator to create the actual game objects"""
page = requests.get(url).json()
...def get_ids_and_names(self):
Returns two dicts: one mapping appid->game name, and one game name->appid
TODO: Refactor the code so we don't need to seperate dicts
url = "/ISteamApps/GetAppList/v2"
url_info = requests.get(url).json()
OK,现在再来跑一下看看:$ python calTotalPrices.py又报错了。具体的错误信息我没保存(为什么这句话这么眼熟),反正大概意思就是 JSON 不能解析None。什么?刚才不就是这个错误吗?!仔细看了一下,错误位置和上次一样,到底是怎么回事?回答这个问题之前先来了解下请求 URL 时到底发生了什么:访问 URL服务器返回 JSON 数据拿到返回的数据并解析我们刚才解决的是第一步,访问 URL。现在又出错了,那就说明返回的 JSON 数据有问题。可以在代码里加一个print page看下,果然是None,也就是说根本就没拿到数据。怎么回事呢?我们再print url一下,我看到的是这个:/api/appdetails/?cc=US&=5%2CC7%2C8%2C10%2C20%2CC30%2C40%2CC50%2CC60%2CC70%2CC80%2CC90%2C92%2CC100%2CCC262260&l;=english&v;=1这appids肯定有问题啊!print all_ids,从里面拿出来一个 id,手动拼接到上面的 URL 中:/api/appdetails/?appids=218620&=US&l;=english&v;=1拿到了数据,看来就是 URL 拼接时候出问题了。看下拼接函数:def _create_url(self, appids, cc):
"""Given a list of appids, creates an API url to retrieve them"""
appids = ','.join([str(x) for x in appids])
data = {'appids': appids, 'cc': cc, 'l': 'english', 'v': '1'}
return "/api/appdetails/?{}".format(urllib.urlencode(data))为什么要urlencode呢?删掉,直接手动拼接:def _create_url(self, appids, cc):
"""Given a list of appids, creates an API url to retrieve them"""
appids = ','.join([str(x) for x in appids])
data = (appids, cc, 'english')
return "/api/appdetails/?appids=%s&=%s&l;=%s&v;=1" % data再执行一下,还是报错。好吧,就是这样的,现在你知道两年前的项目是什么概念了。刚才我们在浏览器里不是拿到数据了吗?怎么又出问题了?仔细看下拼接的 URL,发现有个区别:拼接的 URL 里有多个appid,我们刚才只试了一个。修改测试 URL:/api/appdetails/?appids=600&=US&l;=english&v;=1果然,返回 null。到底是怎么回事?再次阅读steamapiwrapper的文档,发现作者提到了一篇文章,说他用文章里的方法重构了 API,我们去看看。打开一看,说的就是我们这个 API 啊!往下翻,看到好多两年前的评论,再往下翻,最底部的一条评论是五个月前的,看看说了什么:热泪盈眶!兄弟你是个好人啊!!不仅发现了这个问题,还给出了解决方法!把&=price_overview加到 URL 结尾看看:/api/appdetails/?appids=600&=US&l;=english&v;=1&=price_overview热泪盈眶 again!数据出来了,而且正是我们想要的价格数据!这里做个笔记,返回的数据中currency表示货币种类,initial表示原价,final表示折扣价。哎这游戏怎么这么贵?1999 美元?打开 Steam 搜了一下,是 19.99 美元,明白了,这个数字要除以 100 才是实际价格。科普:为什么 Steam 要乘以 100?在很多语言中 0.1 + 0.1 都不等于 0.2,这是因为计算机本身的设计缺陷,无法准确保存浮点数(也就是小数),因此对浮点数做运算会有误差。最简单的解决办法就是把浮点数变成整数进行运算,最终需要展示时再除回小数。如果你想了解更多浮点数内容,可以阅读。下面继续修改代码:def _create_url(self, appids, cc):
"""Given a list of appids, creates an API url to retrieve them"""
appids = ','.join([str(x) for x in appids])
data = (appids, cc, 'english')
return "/api/appdetails/?appids=%s&=%s&l;=%s&v;=1&=price_overview" % data再次运行,又报错了,错误提示不一样了!可喜可贺。具体的错误提示我忘了(……),反正大概是说Game类初始化时候有问题。看一下出错位置的代码:for appid in page: game = Game(page[appid], appid) if game.success:
yield game这里的page是一个解析后的 JSON 内容,也就是说它是一个字典。用for循环去遍历的时候,拿到的appid是字典的键,传入Game类生成实例的时候出错了。跳过去看了一下Game类的实现代码,好麻烦,懒得改了,反正已经拿到价格数据,直接返回得了。def _get_games_from(self, url):
"""Generator to create the actual game objects"""
page = requests.get(url).json()
for game in page:
if page[game]['success'] and page[game]['data']:
yield page[game]['data']['price_overview']再重复一遍,page 是字典,所以要用方括号去获取内容。测试的时候发现有时候请求成功但是data是空,所以if中加了一个判断条件。由于返回的内容改变,我们还需要修改calTotalPrices.py里面的代码:from steamapiwrapper.SteamGames import Gamesgames = Games()full_price = 0.0discounted_price = 0.0for game in games.get_all('US'): if game['initial'] != 0:
discounted_price += game['final']
full_price += game['initial']
print full_price, discounted_price再次运行程序,这次没有报错,并且一直在输出价格,大功告成!这一节写了好长,终于能结束了。验证代码跑通了,下面就是要检查数据是否正确。执行:$ python calTotalPrices.py一开始没问题,过了一会又报错了。不是没问题了吗?这时候,经验丰富的同学应该已经想到了一种可能性:API 调用频率限制。没错,Steam 不是慈善家,API 资源不可能给你无限使用。经过一番研究,发现确实是触发了 API 的限制。一旦访问频率过快,Steam 会直接返回 null。那么 Steam 的限制到底是多少?Google 一番之后,发现 Steam 官方没有任何说明。聪明的网友们自己总结出几条规则:10 秒内最多调用 10 次5 分钟内最多调用 200 次x 分钟内……好了好了我明白了,总之一秒调用一次肯定没问题是吧?简单,加个sleep(1):import time...for url in urls:
for game in self._get_games_from(url):
yield game
time.sleep(1)加完之后,经验丰富的同学应该又想到了另一个问题:要抓多久?print len(all_ids),大概有 23000 个 id,代码中self.num = 25,每次请求查询 25 个,需要查询 23000/25 = 1000 次。每次请求睡眠一秒,那就是 1000 多秒,大概 17 分钟。再加上请求本身需要的时间,可能要几十分钟吧。看起来也可以接受,不过还能优化吗?仔细看代码中的注释:def __init__(self,num=None):
num -- number of games to query per call. The default 150 should work in most cases.
self.num = 25 if num is None else num原来默认值是 150 啊,那我们就改成self.num = 150,一下快了 6 倍,好开心。下面就来正式运行一下,看看能否拿到数据:$ nohup python calTotalPrices.py > result &咦,怎么出来一个nohup?这是一个新命令,简单来说就是后台执行。这条命令把输出写到result文件中,结尾的&会让进程在后台持续运行,哪怕 ssh 断掉进程也不会中止。然后等就可以了,什么时候程序执行完了,什么时候拿到结果。等几分钟就跑完了,看看总价:03412哇,真不少啊!十五万美元!现在已经解决了我的问题,算出了总价。不过我还想做得更多,能不能让其他人也看到这个数据呢?当然能,做个网站就可以了。展示现在已经拿到数据了,接下来要做的是展示数据。我们从用户的角度来思考,他们如何查看数据?访问一个 URL,因此需要注册一个域名请求会发送到后端服务器,因此需要准备一个 VPSVPS 需要处理请求,因此需要配置 NginxNginx 拿到请求之后要反向代理给具体的处理者,因此需要编写一个 Node.js 程序Node.js 程序需要返回一个页面,因此需要编写一个 HTML 页面OK,就是这些,涉及到很多东西,但是都不难。具体实施的时候顺序稍有不同,我们一步一步说。注册一个域名具体教程自己 Google,一般注册域名国内去万网,国外去,。买好域名之后,把域名解析到自己的 VPS IP 地址就可以了。准备一个 VPSVPS 是另一个话题,你问我资词哪个?我主要用 Linode 和阿里云。不过要注意,大陆的主机要求域名备案,不备案的域名不能解析到大陆主机。所以如果你域名没备案,去买香港或者新加坡的主机,阿里云有,UCloud 也有,很多家都有。还可以买日本和欧美主机,不过速度比较慢。编写一个 HTML 页面由于只需要展示数字,所以直接编写一个带占位符的简单页面就可以:
lang="zh-CN">>
charset="UTF-8"> >买下 Steam 所有游戏要花多少钱?>
name="viewport" content="width=device-width, initial-scale=1,user-scalable=no">
type="text/css">
... 省略,可以直接查看我的网站源码
class="main"> >买下Steam所有游戏需要> >${dollar} 或 ¥{cny}> >共有> >{us_number}(美区),{cn_number}(中区)个游戏和 DLC!>
class="date">更新日期:{date}> > href="//_%E5%A6%82%E4%BD%95%E8%AE%A1%E7%AE%97%20Steam%20%E6%B8%B8%E6%88%8F%E6%80%BB%E4%BB%B7%EF%BC%9F/">原理详解>> >
class="footer"> >
href="">作者@梁杰_numbbbbb> > >>>注意到里面有几个奇怪的东西,那些是占位符,Node.js 中会读取 Python 执行出来的结果并替换掉,用户看到的网页显示的是实际数字。你可以根据自己的喜好调整页面样式。编写一个 Node.js 程序首先配置好 Node.js 环境以及 npm,不会的自行 Google。这里用到了hapi,一个 Node.js 服务端框架,专门用来处理网络请求。还用到了pm2,你可以把它理解成一个监控程序,它会帮你监控进程是否正常运行,并在必要的时候重启进程,这样你的服务就不会轻易狗带。我喜欢 ES6,所以需要安装babel-cli$ sudo npm install pm2 babel-cli -g$ sudo npm install hapi由于babel-cli和pm2都需要执行命令行命令,所以全局安装。下面创建 Node.js 程序:$ touch index.js$ vim index.js拷贝进去下面的代码:#!/usr/bin/env babel-nodeimport Hapi from 'hapi'import fs from 'fs'let server = new Hapi.Server()server.connection({
port: 3003,
origin: ['*']
}})function numberWithCommas(x) {
var parts = x.toString().split(".");
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
return parts.join(".");}server.route({
method: 'GET',
path: '/',
handler: (request, reply) => {
fs.readFile("finalResult", (err, data) => {
if (err) throw err
let rawData = data.toString().split('\n')
fs.stat("finalResult", (err, data) => {
let mtime = data.mtime
fs.readFile("index.html", (err, data) => {
var result = data.toString()
result = result.replace("{dollar}", numberWithCommas(parseInt(rawData[1]) / 100))
result = result.replace("{cny}", numberWithCommas(parseInt(rawData[4]) / 100))
result = result.replace("{us_number}", numberWithCommas(rawData[2]))
result = result.replace("{cn_number}", numberWithCommas(rawData[5]))
result = result.replace("{date}", mtime.toISOString())
reply(result).code(200)
}})server.start((err) => {
console.log(err)
console.log('Server running at:', .uri)})再次重复,本文的代码不包含任何最佳实践,Just For Fun!这段代码很简单,启动一个服务器监听 3003 端口,如果有请求过来,就直接读取上面的 HTML 文件,用最新的数据替换掉 HTML 中的占位符,然后返回。配置 Nginx在 VPS 上安装和配置 Nginx。别问我怎么安装,问 Google。打开配置文件:$ vim /etc/nginx/nginx.conf添加一段内容:server {
listen 80;
server_ www.
# ←写你的域名
location / {
proxy_pass http://127.0.0.1:3003;
# ←写你的端口
proxy_http_version 1.1;
proxy_set_essay-header Upgrade $http_
proxy_set_essay-header Connection 'upgrade';
proxy_set_essay-header Host $
proxy_cache_bypass $http_
}注意两个地方,一个是域名,一个是端口。当然,我们还没说到域名,先往下翻,看域名那一节,搞定域名再来这里配置。写完之后重启 Nginx:$ service nginx restart看到输出[OK]就表示重启成功,配置没问题。如果不写域名这里会出错。Burst Link!别问我标题什么意思,反正看 Link 也能猜到,就是把各个部分连接起来。现在已经有了:域名VPSNginxHTML 页面Node.js 程序并且域名已经解析到 VPS、Nginx 已经配置好,只差最后一步,用pm2运行你的 Node.js 程序。$ pm2 start index.js --interpreter babel-node由于我使用了 ES6,所以要把解释器设置成babel-node。执行完这一步就可以了,现在用户可以访问你的 URL,请求会被发送到 VPS,VPS 上的 Nginx 接收到请求之后会转发给 Node.js 程序,这个程序会读取数字、替换占位符并返回最终的 HTML。好了,展示部分已经搞定。下面还有最后一个任务:自动更新数据。Final Round!首先来修改我们的计算脚本,让它把美元总价、人民币总价、游戏和 DLC 总数以及修改日期写入finalResult文件,一个一行。from steamapiwrapper.SteamGames import Gamesgames = Games()us_full_price = 0us_discounted_price = 0us_gameTotal = 0for game in games.get_all('US'): if game['initial'] != 0:
us_gameTotal += 1
us_discounted_price += game['final']
us_full_price += game['initial']cn_full_price = 0cn_discounted_price = 0cn_gameTotal = 0for game in games.get_all('CN'): if game['initial'] != 0:
cn_gameTotal += 1
cn_discounted_price += game['final']
cn_full_price += game['initial']print "\n".join([str(us_full_price), str(us_discounted_price), str(us_gameTotal), str(cn_full_price), str(cn_discounted_price), str(cn_gameTotal)])我承认上面的代码很蠢,或许下一个版本我会重构,现在嘛,Just For Fun!分别计算美元和人民币的价格,然后输出。注意输出顺序要和前面的 Node.js 程序对应。最后写一个 Linux 的 crontab 命令,每天半夜 12 点自动执行一遍这个程序:$ crontab -e0 23 * * * cd /steamtuhao && python calTotalPrices.py > result && mv finalResult finalResult.bak && mv result finalResult这里有个坑,注意,是写到倒数第二行,这个文件结尾必须有一个空行!如果写到最后一行无法执行。是不是很奇怪?我个人认为这是 Linux 的一个脑残之处。执行man crontab,手册中有一行:cron requires that each entry in a crontab end in a newline character.
If the last entry in a crontab is missing the newline,
consider the crontab (at least partially) broken and refuse to install it.这句话的意思是说:最后一行必须是空行,否则最后一个任务无法执行。没有任何解释,反正就是无法执行。难以想象,一个 21 世纪的 Linux 系统居然连空行问题都处理不了!无论如何,一定要记住,crontab 文件结尾必须有空行。好了,现在你已经完成了所有步骤,把域名发给你的朋友吧!总结早晨开始写代码,中午开始写博客,这一切都在一天之内搞定。再次重申,文章中的代码并不好,因为代码本来就不是重点,重点是这个过程带给了我很多乐趣!我一直觉得编程和写作、绘画一样,是一种创造的过程。我喜欢编程,我可以用它实现我的各种奇思妙想,我很享受这个过程。希望你也能享受编程。别怀疑...我和你一样,不懂....
觉得不错,分享给更多人看到
steam最新优惠 微信二维码
分享这篇文章
9月26日 1:13
steam最新优惠 最新文章
steam最新优惠 热门文章

我要回帖

更多关于 steam游戏 的文章

 

随机推荐