首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Java开发

    Linux下安装calibre-ebook

    官网地址:https://calibre-ebook.com/download 需要有python环境 ➡️ Linux安装python2.7 注:calibre-3.44.0 需要 Python sqlite-devel readline-devel tk-devel gcc make -y # sudo -v && wget -nv -O- https://download.calibre-ebook.com

    1.9K50发布于 2019-06-25
  • 来自专栏ThoughtWorks

    EBOOK|从介绍到实践,聊聊我们对“微服务”的洞见

    以下内容多出自《ThoughtWorks洞见-微服务文集》,可点击左下角[阅读原文]订阅查看。 微服务的应运而生: “微服务”这个术语在过去几年如雨后春笋般涌现,它是一种构建可独立部署服务套件的软件设

    78380发布于 2018-04-17
  • 来自专栏全栈开发工程师

    【后端架构完善与接口开发】003-新增ebook表,生成持久层代码

    4、新增ebook表,生成持久层代码 第一步:运行 SQL # 电子书表 drop table if exists `ebook`; create table `ebook` ( `id` ` (id, name, description) values (2, 'Vue 入门教程', '零基础入门 Vue 开发,企业级应用开发最佳首选框架'); insert into `ebook` ( --只写ebook即可! /list") public List<Ebook> list(){ return eBookService.list(); } } 第七步:新建 ebook.http GET http://localhost:8080/ebook/list Accept: application/json ### 第八步:启动项目,测试

    19110编辑于 2025-01-06
  • 来自专栏陶士涵的菜地

    [PHP] 适配器模式-结构型设计模式

    下面这个例子Book 和EBook这是两个类型,方法都不一样,通过一个EBookAdapter类转换EBook方法成为Book的方法 两个类型的接口 interface Book { public function turnPage(); } interface EBook { public function pressNext(); } Kindle类实现了EBook class Kindle implements EBook { public function pressNext(){ } } class EBookAdapter implements Book { protected EBook $eBook; public function __construct(EBook $eBook) { $this->eBook = $ eBook; } public function turnPage() { $this->eBook->pressNext(); } } 转换并使用 $

    35010发布于 2020-10-27
  • 来自专栏测试人生

    【没有测开,只有测试干开发】,爆肝一个快照功能

    哈哈 对应SQL insert into ebook_snapshot (ebook_id, date, view_count, vote_count, view_increase, vote_increase ) SELECT t1.id, curdate(), 0, 0, 0, 0 from ebook t1 where not exists(select 1 from ebook_snapshot t2 where t1.id = t2.ebook_id and t2.date = curdate()); update ebook_snapshot t1, ebook t2 set t1.vote_count select t1.ebook_id, t1.vote_count, t1.view_count from ebook_snapshot t1 where date = date_sub(curdate update ebook_snapshot t1 left join (select ebook_id, view_count, vote_count from ebook_snapshot

    27000编辑于 2024-05-27
  • 来自专栏哈哈熊

    【wiki知识库】09.欢迎页面展示(浏览量统计)SpringBoot部分

    我们点开doc、ebook后都能看到有浏览量的统计,但不同的是doc记录的是每一篇文档的浏览量,而ebook记录的是某个电子书的浏览量,至于下边的ebook_snapshot意味着每一日的电子书快照,什么意思呢 想想看,doc统计的是文档的浏览量,文档是带有ebook的id的,我们只要把某个ebook下的doc做一个统计就好了,这样就可以的到ebook中的浏览量数据了。 2.4.1 定时更新ebook数据 这是一个自动化任务,过一段时间ebook中的数据就要和doc中的数据进行同步。 `date` = CURDATE() ); UPDATE ebook_snapshot t1 JOIN ebook t2 ON t1.ebook_id UPDATE ebook_snapshot t1 JOIN ebook t2 ON t1.ebook_id = t2.id SET t1.view_count =

    47610编辑于 2024-08-19
  • 来自专栏全栈程序员必看

    命令行中使用adb安装apk「建议收藏」

    adb install ebook.apk 假设ebook.apk中的package是net.blogjava.mobile.ebook,可以使用如下的命令卸载这个应用程序。 在emulator-5554模拟器上安装ebook.apk adb -s emulator-5554 install ebook.apk 在真机上安装ebook.apk adb -s HT9BYL904399 install ebook.apk 在emulator-5554模拟器上重新安装ebook.apk adb -s emulator-5554 install -r ebook.apk 在真机上重新安装 ebook.apk adb -s HT9BYL904399 install -r ebook.apk 在emulator-5554模拟器上卸载ebook.apk(不保留数据和缓冲目录) adb - 在真机上运行ebook.apk adb -s HT9BYL904399 shell am start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main

    2K10编辑于 2022-08-25
  • 来自专栏雪之梦技术驿站

    gitbook 入门教程之导出电子书 原

    gitbook 既可以将源码文件单独输出,也可以仅输出单个文件,常见的导出电子书格式主要有三种(ePub, Mobi, PDF),而这三种格式都依赖于系统本身提供的 ebook-convert 工具. . calibre 官网: https://calibre-ebook.com/ ? linux 系统 下载地址: https://calibre-ebook.com/download_linux 下载应用 $ sudo -v && wget -nv -O- https://download.calibre-ebook.com 配置软链接 $ sudo ln -s ~/Applications/calibre.app/Contents/MacOS/ebook-convert /usr/bin 测试命令 $ ebook-convert --version 如果没有输出 ebook-convert 版本信息,可能需要配置环境变量.

    3K10发布于 2019-04-18
  • 来自专栏全栈开发工程师

    【后端架构完善与接口开发】004-通用返回类、封装请求参数

    public class EBookController { @Autowired private EBookService eBookService; @GetMapping("ebook /list") public CommonResp<List<Ebook>> list() { return new CommonResp<List<Ebook>>().setContent public class EBookController { @Autowired private EBookService eBookService; @GetMapping("ebook /list") public CommonResp<List<Ebook>> list(String name) { return new CommonResp<List<Ebook GET http://localhost:8080/ebook/list?

    30010编辑于 2025-01-06
  • 来自专栏深度应用

    『开发技巧』gitbook从入门到放弃(指令错误解决)

    /my.pdf InstallRequiredError: "ebook-convert" is not installed. Install it from Calibre: https://calibre-ebook.com 按照提示,从https://calibre-ebook.com,下载安装符合系统版本软件安装。 笔者下载路径为:https://download.calibre-ebook.com/5.16.1/calibre-5.16.1.dmg 配置ebook-convert路径参考:http://caibaojian.com 指令,命令行执行:ebook-convert 输出: Usage: ebook-convert input_file output_file [options] Convert an e-book from For full documentation of the conversion system see https://manual.calibre-ebook.com/conversion.html

    1.9K20发布于 2021-04-30
  • 来自专栏软件测试经验与教训

    ADB命令集锦

    在emulator-5554模拟器上安装ebook.apk adb -s emulator-5554 install ebook.apk 在真机上安装ebook.apk adb -s HT9BYL904399 install ebook.apk 在emulator-5554模拟器上重新安装ebook.apk adb -s emulator-5554 install -r ebook.apk 在真机上重新安装 ebook.apk adb -s HT9BYL904399 install -r ebook.apk 在emulator-5554模拟器上卸载ebook.apk(不保留数据和缓冲目录) adb -s emulator -5554 uninstall ebook包名 在真机上卸载ebook.apk(保留数据和缓冲目录) adb -s HT9BYL904399 uninstall -k ebook包名 5、包管理,如何知道一个 在真机上运行ebook.apk adb -s HT9BYL904399 shell am start -n net.blogjava.mobile.ebook/net.blogjava.mobile.ebook.Main

    2.1K52发布于 2018-09-29
  • 来自专栏开源优测

    [快学Python3]HTTP处理 - urllib模块

    q=python" response = urllib.request.urlopen(url) # 将bytes数据流解码成string ebook_str = response.read ().decode() # 将string转换成dict ebook_dict = eval(ebook_str) #print(ebook_dict) #print (type(ebook_dict)) count = ebook_dict["count"] total = ebook_dict["total"] with codecs.open = response.read().decode() # 将string转换成dict ebook_dict = eval(ebook_str) # 输出书籍信息 for book in ebook_dict["books"]: spamwriter.writerow([book["title

    91780发布于 2018-04-09
  • 来自专栏开源优测

    [快学Python3]HTTP处理 - urllib模块

    q=python" response = urllib.request.urlopen(url) # 将bytes数据流解码成string ebook_str = response.read ().decode() # 将string转换成dict ebook_dict = eval(ebook_str) #print(ebook_dict) #print (type(ebook_dict)) count = ebook_dict["count"] total = ebook_dict["total"] with codecs.open = response.read().decode() # 将string转换成dict ebook_dict = eval(ebook_str) # 输出书籍信息 for book in ebook_dict["books"]: spamwriter.writerow([book["title

    81750发布于 2018-04-09
  • 10,000+ star 开源「ebook2audiobook」白嫖1107种语言!免费文字秒变多语言音频!

    ebook2audiobook 是一款由 Drew Thomasson 主导、13 k+ Stars(约 9683 ⭐)的开源利器,可实现电子书 (EPUB、PDF、MOBI、TXT…) → 有声书 ( 使用示例一、Web GUI 使用方法git clone https://github.com/DrewThomasson/ebook2audiobookcd ebook2audiobookpip install 同类项目项目语言数GUI 支持语音克隆依赖资源优势ebook2audiobook1107+✅ Gradio/Docker✅Calibre + TTS + FFmpeg功能最齐全、支持语音克隆、轻量资源ebook2audiobookSTYLETTS2 TTS 工具少量语言❌❌各不相同门槛低,但功能逊色总结ebook2audiobook 是目前开源界最强、语言支持最全、功能最丰富的电子书 to 有声书转换工具。 项目地址 https://github.com/DrewThomasson/ebook2audiobook

    1.3K00编辑于 2025-07-24
  • 来自专栏哈哈熊

    【wiki知识库】01.wiki知识库前后端项目搭建(SpringBoot+Vue3)

    -- ---------------------------- DROP TABLE IF EXISTS `ebook`; CREATE TABLE `ebook` ( `id` bigint( -- ---------------------------- INSERT INTO `ebook` VALUES (1, 'Spring Boot 入门教程', 200, 202, '零基础入门 Java 开发,企业级应用开发最佳首选框架', NULL, 7, 9, 0); INSERT INTO `ebook` VALUES (2, 'Vue 入门教程', NULL, NULL, '零基础入门 -- ---------------------------- DROP TABLE IF EXISTS `ebook_snapshot`; CREATE TABLE `ebook_snapshot` ; INSERT INTO `ebook_snapshot` VALUES (2, 2, '2024-05-25', 0, 0, 0, 0); INSERT INTO `ebook_snapshot`

    1.2K00编辑于 2024-05-27
  • 来自专栏哈哈熊

    【wiki知识库】04.SpringBoot后端实现电子书的增删改查以及前端界面的展示

    二、前端页面的改造 2.1新增电子书管理页面 我在src下新建了admin文件夹,这个文件夹中的内容是给网站管理员看到的,所以放到了admin目录,名字为admin-ebook.vue。 admin-ebook.vue的具体内容如下。这个文件里我注释掉了一些信息,而且这个文件中的内容包含了页面需要的功能很多,有的一些并不是今天要讲解的内容,所以并没有使用到。 /ebook/save", ebook.value).then((response) => { modalLoading.value = false; const = Tool.copy(record); categoryIds.value = [ebook.value.category1Id, ebook.value.category2Id] 三、SpringBoot后端Ebook模块改造 3.1增加电子书增/改接口 在我们点击新增按钮或者编辑按钮的时候,会弹出一个窗口来添加或者修改电子书的信息,当我们点击确定之后会向后端发送请求。

    37110编辑于 2024-06-04
  • 来自专栏全栈开发工程师

    【后端架构完善与接口开发】005-封装返回值

    sb.toString(); } } 第二步:修改 EbookService package com.zibo.wiki.serivce; import com.zibo.wiki.domain.Ebook ebookExample.createCriteria(); criteria.andNameLike("%" + req.getName() + "%"); List<Ebook ebook : ebookList) { EbookResp ebookResp = new EbookResp(); BeanUtils.copyProperties (ebook,ebookResp); // 拷贝 respList.add(ebookResp); } return respList; public class EBookController { @Autowired private EBookService eBookService; @GetMapping("ebook

    15810编辑于 2025-01-06
  • 来自专栏afjhahfhahajk

    寻找写代码感觉(十四)之 新增功能的开发

    * * @param eBookSaveReq */ public void save(EBookSaveReq eBookSaveReq) { EBook eBook = copy(eBookSaveReq, EBook.class); if (ObjectUtils.isEmpty(eBook.getId())) { eBook.setId(snowFlake.nextId()); //数据库中没查到,走新增方法 eBookMapper.insert(eBook); } else { //数据库中查到,有该条信息,走编辑操作 eBookMapper.updateByPrimaryKey(eBook);

    40820编辑于 2022-02-21
  • 来自专栏全栈开发工程师

    【后端架构完善与接口开发】006-制作CopyUtil封装BeanUtils

    return target; } } 第二步:修改 EBookService package com.zibo.wiki.serivce; import com.zibo.wiki.domain.Ebook ebookExample.createCriteria(); criteria.andNameLike("%" + req.getName() + "%"); List<Ebook ebookMapper.selectByExample(ebookExample); // List<EbookResp> respList = new ArrayList<>(); // for (Ebook ebook : ebookList) { // EbookResp ebookResp = new EbookResp(); // BeanUtils.copyProperties (ebook,ebookResp); // 拷贝 // respList.add(ebookResp); // } return CopyUtil.copyList

    24910编辑于 2025-01-06
  • 来自专栏编程语言的世界

    php设计模式(八):适配器模式(Adapter)

    = null; public function __construct() { $eBook = new TianlongEBook(); $this ->eBook = $eBook; } public function turnPage() { return $this->eBook->turnTxtPage (); } public function open() { return $this->eBook->openTxt(); } public function getPage(): int { return $this->eBook->getTxtPage(); } public function getInfo(): string { return $this->eBook->getTxtInfo(); } } PHP Copy 客户端使用 /** * 获取计算机专业书

    35120编辑于 2023-09-18
领券