咨询个 WordPress 火车头采集问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
11235813
V2EX    问与答

咨询个 WordPress 火车头采集问题

  •  
  •   11235813 2020-03-26 19:21:20 +08:00 2016 次点击
    这是一个创建于 2101 天前的主题,其中的信息可能已经有所发展或是发生改变。
    找了个 WordPress 火车头发布接口,但是评论回复时间死活不对,
    标签抓取的时间是 2020-01-27 23:47:21 ||| 2020-02-27 23:47:21
    发布后的时间确是当前服务器时间-8,自己试着改了改,时间能按采集的发布了,但是只能第一条评论时间正确,烦请路过的大牛指点一二

    <?php
    /*
    WordPress 免登录发布接口,支持最新 Wordpress4.8.2
    版本号: T3
    适用于火车头采集器 7.6-9.6

    更新说明
    T3: 2017.11.03
    1 、优化了验证标题重复
    2 、优化了附件、图片、缩略图的上传和生成
    T2: 2017.10.23
    1 、增加了对多个分类方式的发布参数(post_taxonomy_list),使用方法请参考功能特性
    2 、修复 BUG: 分类名称如果含有数字会导致分类错误
    T1:2017.10.12
    1 、旧版发布接口重新设计,新版本号为 T1,以后不再对旧版升级维护.旧版本支持 3.X-4.8.2
    2 、修复 BUG:当规则中没有发布模块中某个参数时会导致发布数据异常(会显示 db:标签名)
    3 、优化 strtoarray 函数


    ■ 功能特性:

    分类(category):
    1 、分类支持分类名和分类 ID, 系统自动判断
    2 、多分类处理(多个分类请用逗号隔开)
    3 、自动创建分类,如果网站内没有这个分类,会自动创建分类。
    4 、自动创建父分类, 适用于想要设置父分类并且网站中不存在. 使用方法: WEB 发布模块 /高级功能 /内容发布参数 / -> 增加 post_parent_cate
    5 、添加分类描述 使用方法: WEB 发布模块 /高级功能 /内容发布参数 / -> 增加 category_description


    标签:
    1 、多标签处理(多个标签请用逗号隔开)


    作者:
    1 、多作者处理, 可设置多个作者随机发布文章, 发布参数中指定 post_author
    2 、自定义作者功能,如果提交的数据为用户名的话,会自动检测系统是否存在该用户,如果已存在则以该用户发布,不存在则自动新建用户(接口以针对中文用户名进行了处理)


    图片和缩略图:
    1 、Web 图片上传,无需 FTP 上传
    2 、自动设置 [标签:内容] 的第一张图片为文章的特色图片.
    3 、支持自定定义缩略图(特色图像) 使用方法: WEB 发布模块 /高级功能 /文件上传设置 / 增加 缩略图所在的标签,表单名为: thumb 递增数字
    3 、标准的 php.ini 单次最大文件上传数为 20 个, 如果发布的内容附件超过 20 个,将会出错. 如果遇到此问题请更改 php.ini 的 max_file_uploads 参数 . 或者更换上传方式为 FTP


    时间和预约发布:
    1 、正确的时间格式为 2017-10-01 23:45:55 或者 2017-10-01 23:45
    2 、自动处理服务器时间与博客时间的时区差异
    3 、随机时间安排与预约发布功能: 可以设定发布时间以及启用预约发布功能. 启用预约发布后,如果 POST 过来的数据包涵时间,则以时间为准立即发布,反之则以接口文件配置时间发布。

    评论:
    1 、发布评论,支持评论时间、评论作者、评论内容, 需要在火车头->Web 发布模块 /内容发布参数 / ->新增 comment 、commentdate 、commentauthor 三个参数,分别对应评论内容、评论时间、评论作者. 三个参数缺一不可

    其它:
    1 、标题重复判断, 打开参数配置中的$checkTitle,即可判断标题是否重复,对于重复结果不予发布.
    2 、发布文章后自动 ping,需要再后台设置->撰写->更新服务 填入 ping 地址
    3 、'pending review' 更新文章状态 pending(审核) 为 publish(所有人可见)


    自定义字段
    1 、使用方法: WEB 发布模块 /高级功能 /内容发布参数 / -> 增加 post_meta['字段名']


    自定义文章类型(post_type)
    1 、使用方法: WEB 发布模块 /高级功能 /内容发布参数 / -> 增加 post_type


    自定义文章形式(post_format)
    1 、使用此功能需要修改配置参数 $postformat=true;并在火车头->Web 发布模块 /内容发布参数 /->新增发布参数 post_format, 标签内容必须为: 图像: post-format-image 视频: post-format-video


    自定义分类(taxonomy):
    1 、使用方法: WEB 发布模块 /高级功能 /内容发布参数 / -> 增加 post_taxonomy, 使用 taxonomy 之后, 文章只能发布在 taxonomy 所属的分类下, 分类名称或者 ID 请填写在分类 category

    自定义分类--多个分类--(taxonomy):
    1 、使用方法: WEB 发布模块 /高级功能 /内容发布参数 / -> 增加 post_taxonomy_list[taxonomy_name], 使用后可以将文章归属到多个自定义分类下, 多个 term 必须使用|||隔开

    自定义分类信息(add_term_meta)
    1 、使用方法: WEB 发布模块 /高级功能 /内容发布参数 / -> 增加 post_cate_meta['meta_key'], 标签内容可以为文本或者数组,数组必须参照格式: key$$value|||key$$value|||key$$value


    模块参数列表:
    post_title 必选 标题
    post_content 必选 内容
    tag 可选 标签
    post_category 可选 分类
    post_date 可选 时间
    post_excerpt 可选 摘要
    post_author 可选 作者
    category_description 可选 分类信息
    post_cate_meta[name] 可选 自定义分类信息
    post_meta[name] 可选 自定义字段
    post_type 可选 文章类型 默认为'post'
    post_taxonomy 可选 自定义分类方式
    post_format 可选 文章形式

    */

    //-------------------配置参数开始,根据需要修改-------------------------
    $post_author_default = 1; //默认作者的 id,默认为 admin (这里是作者 ID 号码,并非作者名)
    $post_status = 'future'; //立即发布 pending 审核 draft 草稿箱
    $time_interval = '1'; //发布时间间隔,单位为秒 。可设置随机数值表达式,如 12345 * rand(0,17),设置为负数可将发布时间设置为当前时间减去这里设置的时间
    $post_next = 'now'; //now:发布时间=当前时间+间隔时间值 //next: 发布时间=最后一篇时间+间隔时间值
    $post_ping = false; //发布后是否执行 ping
    $translate_slug = false; //是否将中文标题转换为 MD5 值,如需开启请设置为 true 或 MD5 值长度,建议设置为大于 10,小于 33 的数字。
    $secretWord = false; //接口密码,如果需要密码,则设为$secretWord='你的密码';
    $checkTitle = false; //检测标题是否重复
    $postformat = true; //开启文章形式
    //-------------------配置参数结束,以下请勿修改-------------------------


    //开始
    if(isset($_GET['action'])){
    $hm_action=$_GET['action'];
    }else{
    die("操作被禁止>");
    }

    $post = $_POST;

    include_once "./wp-config.php";
    if($post_ping) require_once("./wp-includes/comment.php");

    if($hm_action== "list"){
    hm_print_catogary_list();
    }elseif($hm_action== "update"){
    hm_publish_pending_post();
    }elseif($hm_action == "save"){
    //检查通讯密码
    if (isset($secretWord)&&($secretWord!=false)) {
    if (!isset($_GET['secret']) || $_GET['secret'] != $secretWord) {
    die('接口密码错误,请修改配置文件或者修改发布参数,保持两者统一。');
    }
    }

    extract($post);
    //判断标题是否为空
    if ($post_title=='[标题]'||$post_title=='') {die('标题为空');}
    //检查标题是否重复
    if($checkTitle){
    $post_title = trim(hm_strip_slashes($post_title));
    $sql = "SELECT `ID` FROM $wpdb->posts WHERE `post_title` = '$post_title'";
    $t_row = $wpdb->query($sql);
    if($t_row) {die('标题重复,发布成功');};
    }
    //判断标题是否为空
    if ($post_cOntent=='[内容]'||$post_cOntent=='') {die('内容为空');}
    //检查自定义文章类型
    if (empty($post_type) || strpos($post_type, '[') || strpos($post_type, ']')) {$post_type='post';}
    //检查自定义分类目录
    if (empty($post_taxonomy) || strpos($post_taxonomy, '[') || strpos($post_taxonomy, ']')) {$post_taxOnomy='category';}
    //检查分类描述是否未设置
    if (empty($category_description) || strpos($category_description, '[') || strpos($category_description, ']')) {$category_description='';}
    //检查自定义字段
    if(array_key_exists('post_meta', $post)){$post_meta = $post['post_meta'];}
    //检查自定义分类信息
    if(array_key_exists('post_cate_meta', $post)){$post_cate_meta = $post['post_cate_meta'];}
    //检查发布时间
    if (!isset($post_date) ||strlen($post_date)<8) $post_date=false;
    //检查作者
    if (empty($post_author)) {
    $post_author=$post_author_default;
    } else {
    $post_author=hm_add_author($post_author);
    }

    $post_cOntent= fileHandle('fujian',$post_content);
    fileHandle('thumb');



    hm_do_save_post(array('post_title'=>$post_title,
    'post_content'=>$post_content,
    'post_category'=>$post_category,
    'post_excerpt'=>$post_excerpt,
    'post_type'=>$post_type,
    'post_taxonomy'=>$post_taxonomy,
    'tags_input'=>$tag,
    'post_date'=>$post_date,
    'post_author'=>$post_author,
    'fujianid'=>$fujianid));
    echo '发布成功';
    }else{
    echo '非法操作['.$hm_action.']';
    }

    //附件处理
    //$filename 附件名称
    //$content 标签内容,为空返回首张图片 ID
    function fileHandle($filesnames, $cOntent= null)
    {
    global $thumbid;
    if (!empty($_FILES[$filesnames.'0']['name'])) {
    require_once('./wp-load.php');
    require_once('./wp-admin/includes/file.php');
    require_once('./wp-admin/includes/image.php');
    $i = 0;
    while (isset($_FILES[$filesnames.$i])) {
    $fujian[$i] = $_FILES[$filesnames.$i];
    $filename = $fujin[$i]['name'];
    $fileExt=array_pop(explode(".", $filename));
    //附件保存格式 [时间]
    $upFileTime=date("YmdHis");
    //更改上传文件的文件名为时间+随机数+后缀
    $fujian[$i]['name'] = $upFileTime."-".uniqid().".".$fileExt;
    $uploaded_file = wp_handle_upload($fujian[$i], array('test_form' => false));
    $cOntent= str_replace("\'".$filename."\'", "\"".$uploaded_file[url]."\"", $content);
    $cOntent= str_replace($filename, $uploaded_file[url], $content);
    if (isset($uploaded_file['error'])) {
    echo "文件上传失败";
    wp_die($uploaded_file['error']);
    }
    $file = $uploaded_file['file'];
    $new_file = iconv('GBK', 'UTF-8', $file);
    $url = iconv('GBK', 'UTF-8', $uploaded_file['url']);
    $type = $uploaded_file['type'];
    $attachment = array(
    'guid' => $url,
    'post_mime_type' => $type,
    'post_title' => $filename,
    'post_content' => '',
    'post_status' => 'inherit'
    );
    $attach_id = wp_insert_attachment($attachment, $new_file);
    if (strpos($fujian[$i]['type'], 'image') !== false) {
    if(empty($thumbid) || $filesnames == 'thumb') $thumbid = $attach_id;
    $attach_data = wp_generate_attachment_metadata($attach_id, $file);
    $attach_data['file'] = iconv('GBK', 'UTF-8', $attach_data['file']);
    foreach ($attach_data['sizes'] as $key => $sizes) {
    $sizes['file'] = iconv('GBK', 'UTF-8', $sizes['file']);
    $attach_data['sizes'][$key]['file'] = $sizes['file'];
    }
    wp_update_attachment_metadata($attach_id, $attach_data);
    }
    $i++;
    }
    }
    return $content;
    }

    function hm_tranlate($text)
    {
    global $translate_slug;
    $pattern = '/[^\x00-\x80]/';
    if (preg_match($pattern,$text)) {
    $htmlret = substr(md5($text),0,$translate_slug);
    } else {
    $htmlret = $text;
    }
    return $htmlret;
    }

    function hm_print_catogary_list()
    {
    $cats = get_categories("hierarchical=0&hide_empty=0");
    foreach ((array) $cats as $cat) {
    echo '<<<'.$cat->cat_ID.'--'.$cat->cat_name.'>>>';
    }
    }

    function hm_get_post_time($post_next="normal")
    {
    global $time_interval;
    global $wpdb;

    $time_difference = absint(get_option('gmt_offset')) * 3600;
    $tm_now = time()+$time_difference;

    if ($post_next=='now') {
    $tm=time()+$time_difference;
    } else { //if ($post_next=='next')
    $tm = time()+$time_difference;
    $posts = $wpdb->get_results( "SELECT post_date FROM $wpdb->posts ORDER BY post_date DESC limit 0,1" );
    foreach ( $posts as $post ) {
    $tm=strtotime($post->post_date);
    }
    }
    return $tm+$time_interval;
    }

    function hm_publish_pending_post()
    {
    global $wpdb;
    $tm_now = time()+absint(get_option('gmt_offset')) * 3600;
    $now_date=date("Y-m-d H:i:s",$tm_now);
    $wpdb->get_results( "UPDATE $wpdb->posts set `post_status`='publish' WHERE `post_status`='pending' and `post_date`<'$now_date'" );
    }

    function hm_add_category($post_category, $post_taxOnomy= 'category')
    {
    if (!function_exists('wp_insert_category')) {include_once "./wp-admin/includes/taxonomy.php";}
    global $wpdb,$post_cate_meta,$post_parent_cate,$category_description;
    $post_category_new=array();
    $post_category_list= array_unique(explode(",", $post_category));
    foreach ($post_category_list as $category) {
    $cat_ID =$category;
    if (!isInteger($cat_ID) || $cat_ID < 1) {
    $category = $wpdb->escape($category);
    $term = get_term_by('name',$category,$post_taxonomy,'ARRAY_A');
    $cat_ID = $term['term_id'];
    if($cat_ID == 0){
    //检查父分类是否存在和创建父分类->start
    if(!empty($post_parent_cate) && $post_parent_cate != '[父分类]')
    {
    $parent = intval($post_parent_cate);
    if($parent == 0){
    $post_parent_cate = $wpdb->escape($post_parent_cate);
    $term = get_term_by('name',$post_parent_cate,$post_taxonomy,'ARRAY_A');
    $cat_ID = $term['term_id'];
    if($parent == 0){
    $parent = wp_insert_category(array('cat_name'=>$post_parent_cate, 'taxonomy'=>$post_taxonomy));
    }
    }
    $cat_ID = wp_insert_category(array('cat_name'=>$category, 'category_description'=>$category_description, 'category_parent'=>$parent, 'taxonomy'=>$post_taxonomy));

    }else{
    $cat_ID = wp_insert_category(array('cat_name'=>$category, 'category_description'=>$category_description, 'taxonomy'=>$post_taxonomy));
    }
    //检查父分类是否存在和创建父分类->end
    //定义分类信息->start
    if (!empty($post_cate_meta)) {
    foreach(array_unique(array_filter($post_cate_meta)) as $key => $value) {
    $value = strtoarray($value);
    add_term_meta($cat_ID, $key, $value);
    }
    }
    //定义分类信息->end
    }
    }
    array_push($post_category_new, $cat_ID);
    }
    return $post_category_new;
    }

    function add_category($post_category, $post_taxOnomy= 'category')
    {
    if (!function_exists('wp_insert_category')) {include_once "./wp-admin/includes/taxonomy.php";}
    global $wpdb;
    $post_category_new=array();
    $post_category_list= array_unique(explode(",", $post_category));
    foreach ($post_category_list as $category) {
    $cat_ID =$category;
    if (!isInteger($cat_ID) || $cat_ID < 1) {
    $category = $wpdb->escape($category);
    $term = get_term_by('name',$category,$post_taxonomy,'ARRAY_A');
    $cat_ID = $term['term_id'];
    if($cat_ID == 0){
    $cat_ID = wp_insert_category(array('cat_name'=>$category, 'taxonomy'=>$post_taxonomy));
    }
    }
    array_push($post_category_new, $cat_ID);
    }
    return $post_category_new;
    }

    function isInteger($value){
    return is_numeric($value) && is_int($value+0);
    }

    function hm_add_author($post_author)
    {
    global $wpdb,$post_author_default;
    $User_ID =intval($post_author);
    if ($User_ID == 0) {
    $pattern = '/[^\x00-\x80]/';
    if (preg_match($pattern,$post_author)) {
    $LoginName = substr(md5($post_author),0,10);
    } else {
    $LoginName = $post_author;
    }
    $User_ID = $wpdb->get_col("SELECT ID FROM $wpdb->users WHERE user_login = '$LoginName' ORDER BY ID");
    $User_ID = $User_ID[0];
    if (empty($User_ID)) {
    $website = 'http://'.$_SERVER['HTTP_HOST'];
    $userdata = array(
    'user_login' => "$LoginName",
    'first_name' => $post_author,
    'user_nicename' => $post_author,
    'display_name' => $post_author,
    'nickname' => $post_author,
    'user_url' => $website,
    'role' => 'contributor',
    'user_pass' => NULL);
    $User_ID = wp_insert_user( $userdata );
    }
    $post_author = $User_ID;
    } else {
    $post_author = $post_author_default;
    }
    return $post_author;
    }

    function hm_strip_slashes($str)
    {
    if (get_magic_quotes_gpc()) {
    return stripslashes($str);
    } else {
    return $str;
    }
    }
    function checkDatetime($str){
    $date = strtotime($str);
    if($date > 31500000){
    return true;
    }else{
    return false;
    }
    }

    function formatdate($date){
    $d = date('Y-m-d');
    if(strpos($date, 'today') !== false){
    return str_replace('today at', $d, $date);
    }

    if(strpos($date, 'Today') !== false){
    return str_replace('Today at', $d, $date);
    }

    $dd = date('Y-m-d', time()-84600);
    if(strpos($date, 'yesterday') !== false){
    return str_replace('yesterday at', $d, $date);
    }

    if(strpos($date, 'Yesterday') !== false){
    return str_replace('yesterday at', $d, $date);
    }
    }

    //字符串转换为数组
    //字符串的格式必须为 //$str = 'eo_description$$seo_description|||seo_keywords$$seo_keywords|||seo_title$$seo_title';

    function strtoarray($str){
    if(strpos($str, '|||') !== false){
    $str = explode('|||', $str);
    if(strpos($str[0],'$$') !== false){
    foreach($str as $k => $v){
    $v = explode('$$', $v);
    $r[$v[0]] = $v[1];
    }
    $str = $r;
    }
    }
    return $str;
    }



    function hm_do_save_post($post_detail)
    {
    global $post,$post_author,$post_ping,$post_status,$translate_slug,$post_next,$post_meta,$comment,$commentdate,$commentauthor,$wpdb,$postformat,$post_format,$post_taxonomy_list,$thumbid;
    extract($post_detail);
    $post_title=trim(hm_strip_slashes($post_title));
    $post_name=$post_title;
    if ($translate_slug) $post_name=hm_tranlate($post_name);
    $post_name=sanitize_title( $post_name);
    if ( strlen($post_name) < 2 ) $post_name="";
    $post_cOntent=hm_strip_slashes($post_content);
    $tags_input=str_replace("|||",",",$tags_input);
    if (isset($post_date) && $post_date && checkDatetime($post_date)) {
    $tm=strtotime($post_date);
    $time_difference = absint(get_option('gmt_offset')) * 3600;
    $post_date=date("Y-m-d H:i:s",$tm);
    $post_date_gmt = gmdate('Y-m-d H:i:s', $tm-$time_difference);
    } else {
    $tm=hm_get_post_time($post_next);
    $time_difference = absint(get_option('gmt_offset')) * 3600;
    $post_date=date("Y-m-d H:i:s",$tm);
    $post_date_gmt = gmdate('Y-m-d H:i:s', $tm-$time_difference);
    if ($post_status=='next') $post_status='publish';
    }
    $post_category=hm_add_category($post_category, $post_taxonomy);
    $post_data = compact('post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_type', 'post_title', 'post_category', 'post_status', 'post_excerpt', 'post_name','tags_input');
    $post_data = add_magic_quotes($post_data);
    $postID = wp_insert_post($post_data);
    //设定缩略图
    set_post_thumbnail( $postID, $thumbid );

    //自定义分类方式(taxonomy)
    if($post_taxonomy != 'category' && !empty($post_taxonomy)){
    wp_set_object_terms($postID, $post_category, $post_taxonomy);
    }

    //多个自定义分类方式(taxonomy)
    if(!empty($post_taxonomy_list)){
    foreach($post_taxonomy_list as $k => $v){
    $v = strtoarray($v);
    if(is_array($v)){
    foreach($v as $kk => $vv){
    $vv = add_category($vv, $k);
    wp_set_object_terms($postID, $vv, $k);
    }
    }else{
    $v = add_category($v,$k);
    wp_set_object_terms($postID, $v, $k);
    }
    }
    }

    //归档文章形式->start
    if(!empty($post_format) && $postformat == true){
    if($post_format == 'post-format-image' || $post_format == 'post-format-video'){
    wp_set_post_terms($postID, $post_format, 'post_format');
    }
    }
    //归档文章形式->end

    //发布自定义栏目
    if (!empty($post_meta)) {
    foreach($post_meta as $key => $value) {
    $ret = add_post_meta($postID,$key,$value,true);
    if(!$ret){
    delete_post_meta($postID, $key);
    add_post_meta($postID,$key,$value,true);
    }
    }
    }

    //发布评论->start
    if(!empty($comment)){
    //格式化评论内容
    $comment = str_replace(array("\r\n", "\r", "\n"), "", $comment);
    $arraycomment = explode('|||', $comment);
    //格式化评论时间
    $commentdate = str_replace(array("\r\n", "\r", "\n"), "", $commentdate);
    $arraycommentdate = explode('|||', $commentdate);
    //格式化评论作者
    $commentauthor = str_replace(' ','',$commentauthor);
    $commentauthor = str_replace(array("\r\n", "\r", "\n"), "", $commentauthor);
    $arraycommentauthor = explode('|||', $commentauthor);
    //评论计数
    $comment_count = count($arraycomment) -1 ;
    //更新文章评论数
    $wpdb->get_results("UPDATE $wpdb->posts set `comment_count` = $comment_count WHERE `ID` = $postID");
    //写入评论
    foreach($arraycommentauthor as $k => $v){
    //判断评论时间
    if($v != ''){
    $format="Y-m-d H:i:s";
    $d = formatdate($arraycommentdate[$k]);
    $d = strtotime($d);
    if($d != ''){
    $date = date($format,$d);
    $gmtdate = gmdate($format, $d);
    }else{
    $date = date($format);
    $gmtdate = gmdate($format);
    }
    //写入数据库
    $res = $wpdb->get_results("INSERT INTO $wpdb->comments (`comment_post_ID`,`comment_author`,`comment_date`,`comment_date_gmt`,`comment_content`,`user_id`) VALUES ($postID,'$v','$date','$gmtdate','$arraycomment[$k]',1)");
    }
    }
    }
    //发布评论->end

    // 自定 PING,需要再网站后台设置->撰写->更新服务器 下面填写 PING 地址
    if ($post_ping) generic_ping();
    }
    ?>
    2 条回复    2020-03-27 11:13:10 +08:00
    IFoon
        1
    IFoon  
       2020-03-26 21:35:19 +08:00
    采集的是字符串,不是时间。没转吧?
    11235813
        2
    11235813  
    OP
       2020-03-27 11:13:10 +08:00
    if($v != ''){
    $format="Y-m-d H:i:s";
    $d = formatdate($arraycommentdate[$k]);
    $d = strtotime($d);
    if($d != ''){
    $date = date($format,$d);
    $gmtdate = gmdate($format, $d);
    }else{
    $date = date($format);
    $gmtdate = gmdate($format);
    }
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2658 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 14:25 PVG 22:25 LAX 06:25 JFK 09:25
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86