[星盘]centos安装astrolog7.6以及制作API接口

1,下载源码Astrolog Website

    https://www.astrolog.org/astrolog.htm  ---->Download files --->Astrolog 7.60 source code

2,上传服务器,解压,然后到源文件目录执行make(输入make命令)

遇见问题:

1)ImportError: libX11.so.6: cannot open shared object file: No such file or directory

执行yum命令:

sudo yum install libX11
sudo yum install libXext

2)Centos编译软件提示:X11/Xlib.h:没有那个文件或目录

执行yum命令:

sudo yum install libX*

编译成功后,你会得到一个astrolog执行文件

先试试水,执行命令,OK说明编译成功了:

./astrolog -qa 3 11 1993 10:10 -8 -116.40 39.90 -R0[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 22 25 28 31 34] -v -A3 -c 2

参数含义:

-qa 月 日 年 时间
-8 东八区
-116.40 东经116.40度  也可以116:24E
39.9 南纬39.9
-RO 需要显示的行星,这里是ID,可以用命令 ./astrolog -R1 -HO 查询所有支持的行星
-v 显示对象位置列表 (默认情况下选择)
-A3 回归黄道(好像是这么个意思)
-c 2 盘面宫位使用等宫制

具体使用参数可以看 astrolog.htm 文件,下载一个Windows版本,安装完在安装文件下

3,API接口制作

这里使用java ProcessBuilder进行调用,主要难度在于读懂astrolog的入参,建议打开Windows版本,结合astrolog.htm文件一起。

主要解析代码:

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

import org.jetbrains.annotations.NotNull;

import com.cdslinks.astro.div.astrlog.domain.*;
import com.cdslinks.astro.div.astrlog.rsp.AstroDrawV2Rsp;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Lists;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import lombok.extern.slf4j.Slf4j;
import vip.xiaonuo.common.exception.CommonException;

/**
 *
 * @author xpw
 * @version JDK 8
 * @className CommandUtils
 * @date 2024/3/5 16:01
 * @description 执行结果处理工具
 */
@Slf4j
public class CommandUtils {

    // 字符分割常量
    private static final String SPLITE_STR = "$#$";

    // 宫位提取正则
    private static final Pattern HOUSE_PATTERN = Pattern.compile("House cusp.*");;

    // 宫位落星座提取正则
    private static final Pattern HOUSE_SIGN_PATTERN = Pattern.compile("[a-zA-Z]+|\\d+");;

    // 宫位数据
    private static final Map<String,
        String> HOUSE_MAP = new ImmutableMap.Builder<String, String>().put("1", "命宫").put("2", "财帛宫").put("3", "兄弟宫")
            .put("4", "田宅宫").put("5", "子女宫").put("6", "奴仆宫").put("7", "夫妻宫").put("8", "疾厄宫").put("9", "迁移宫")
            .put("10", "官禄宫").put("11", "福德宫").put("12", "玄秘宫").build();

    // 星座数据
    private static final Map<String, String> SIGN_MAP =
        new ImmutableMap.Builder<String, String>().put("1", "Aries").put("2", "Taurus").put("3", "Gemini")
            .put("4", "Cancer").put("5", "Leo").put("6", "Virgo").put("7", "Libra").put("8", "Scorpio")
            .put("9", "Sagittarius").put("10", "Capricorn").put("11", "Aquarius").put("12", "Pisces").build();

    private static final Map<String,
        String> SIGN_SIMP_MAP = new ImmutableMap.Builder<String, String>().put("Ari", "1").put("Tau", "2")
            .put("Gem", "3").put("Can", "4").put("Leo", "5").put("Vir", "6").put("Lib", "7").put("Sco", "8")
            .put("Sag", "9").put("Cap", "10").put("Aqu", "11").put("Pis", "
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值