Version18.86.3

This commit is contained in:
Antonio Cañas Vargas 2019-03-24 19:35:48 +01:00
parent 155718f39e
commit d8b7552c07
4 changed files with 217 additions and 20 deletions

View File

@ -12690,4 +12690,165 @@ SELECT degrees.ShortName,main_degree.MaxRole
ALTER TABLE usr_data CHANGE COLUMN BasicProfileVisibility BaPrfVisibility ENUM('unknown','user','course','system','world') NOT NULL DEFAULT 'unknown';
ALTER TABLE usr_data DROP COLUMN ExtendedProfileVisibility;
SELECT DISTINCT UsrCod FROM
(
(SELECT DISTINCT UsrCod FROM
(
(
SELECT DISTINCT usr_follow.FollowedCod AS UsrCod
FROM usr_follow,
(SELECT FollowedCod FROM usr_follow
WHERE FollowerCod=1346) AS my_followed,
usr_data
WHERE usr_follow.FollowerCod=my_followed.FollowedCod
AND usr_follow.FollowedCod<>1346
AND usr_follow.FollowedCod=usr_data.UsrCod
AND usr_data.Surname1<>''
AND usr_data.FirstName<>''
AND usr_data.PhotoVisibility IN ('system','world')
AND usr_data.Photo<>''
)
UNION
(
SELECT DISTINCT crs_usr.UsrCod
FROM crs_usr,
(SELECT CrsCod FROM crs_usr
WHERE UsrCod=1346) AS my_crs,
usr_data
WHERE crs_usr.CrsCod=my_crs.CrsCod
AND crs_usr.UsrCod<>1346
AND crs_usr.UsrCod=usr_data.UsrCod
AND usr_data.Surname1<>''
AND usr_data.FirstName<>''
AND usr_data.PhotoVisibility IN ('course','system','world')
AND usr_data.Photo<>''
)
UNION
(
SELECT DISTINCT crs_usr.UsrCod
FROM crs_usr,
(SELECT CrsCod,Role FROM crs_usr
WHERE UsrCod=1346) AS my_crs_role,
usr_data
WHERE crs_usr.CrsCod=my_crs_role.CrsCod
AND crs_usr.Role<>my_crs_role.Role
AND crs_usr.UsrCod=usr_data.UsrCod
AND usr_data.Surname1<>''
AND usr_data.FirstName<>''
AND usr_data.PhotoVisibility IN ('user','course','system','world')
AND usr_data.Photo<>''
)
) AS LikelyKnownUsrsToFollow
WHERE UsrCod NOT IN
(SELECT FollowedCod FROM usr_follow
WHERE FollowerCod=1346)
ORDER BY RAND() LIMIT 6
)
UNION
(
SELECT usr_data.UsrCod FROM usr_data,
(SELECT ROUND(RAND() * (SELECT MAX(UsrCod) FROM usr_data)) AS UsrCod) AS random_usr
WHERE usr_data.UsrCod<>1346
AND usr_data.Surname1<>''
AND usr_data.FirstName<>''
AND usr_data.PhotoVisibility IN ('system','world')
AND usr_data.Photo<>''
AND usr_data.UsrCod NOT IN
(SELECT FollowedCod FROM usr_follow
WHERE FollowerCod=1346)
AND usr_data.UsrCod>=random_usr.UsrCod
LIMIT 3
)
) AS UsrsToFollow
ORDER BY RAND() LIMIT 3;
SELECT usr_data.UsrCod FROM usr_data,
(SELECT ROUND(RAND() * (SELECT MAX(UsrCod) FROM usr_data)) AS UsrCod) AS random_usr
WHERE usr_data.UsrCod<>1346
AND usr_data.Surname1<>''
AND usr_data.FirstName<>''
AND usr_data.PhotoVisibility IN ('system','world')
AND usr_data.Photo<>''
AND usr_data.UsrCod NOT IN
(SELECT FollowedCod FROM usr_follow
WHERE FollowerCod=1346)
AND usr_data.UsrCod>=random_usr.UsrCod
LIMIT 3;
SELECT DISTINCT UsrCod FROM
(
(SELECT DISTINCT UsrCod FROM
(
(
SELECT DISTINCT usr_follow.FollowedCod AS UsrCod
FROM usr_follow,
(SELECT FollowedCod FROM usr_follow
WHERE FollowerCod=1346) AS my_followed,
usr_data
WHERE usr_follow.FollowerCod=my_followed.FollowedCod
AND usr_follow.FollowedCod<>1346
AND usr_follow.FollowedCod=usr_data.UsrCod
AND usr_data.Surname1<>''
AND usr_data.FirstName<>''
AND usr_data.PhotoVisibility IN ('system','world')
AND usr_data.Photo<>''
)
UNION
(
SELECT DISTINCT crs_usr.UsrCod
FROM crs_usr,
(SELECT CrsCod FROM crs_usr
WHERE UsrCod=1346) AS my_crs,
usr_data
WHERE crs_usr.CrsCod=my_crs.CrsCod
AND crs_usr.UsrCod<>1346
AND crs_usr.UsrCod=usr_data.UsrCod
AND usr_data.Surname1<>''
AND usr_data.FirstName<>''
AND usr_data.PhotoVisibility IN ('course','system','world')
AND usr_data.Photo<>''
)
UNION
(
SELECT DISTINCT crs_usr.UsrCod
FROM crs_usr,
(SELECT CrsCod,Role FROM crs_usr
WHERE UsrCod=1346) AS my_crs_role,
usr_data
WHERE crs_usr.CrsCod=my_crs_role.CrsCod
AND crs_usr.Role<>my_crs_role.Role
AND crs_usr.UsrCod=usr_data.UsrCod
AND usr_data.Surname1<>''
AND usr_data.FirstName<>''
AND usr_data.PhotoVisibility IN ('user','course','system','world')
AND usr_data.Photo<>''
)
) AS LikelyKnownUsrsToFollow
WHERE UsrCod NOT IN
(SELECT FollowedCod FROM usr_follow
WHERE FollowerCod=1346)
ORDER BY RAND() LIMIT 6
)
) AS UsrsToFollow
ORDER BY RAND() LIMIT 3;

View File

@ -38,12 +38,24 @@
/****************************** Debug example ********************************/
/*****************************************************************************/
/*
DB_QueryINSERT ("can not debug",
"INSERT INTO debug"
" (DebugTime,Txt)"
" VALUES"
" (NOW(),'ActCod = %ld')",
Act_GetActCod (Gbl.Action.Act));
struct timeval tv1,tv2;
long tv_usecs;
gettimeofday (&tv1,NULL);
function ();
gettimeofday (&tv2,NULL);
tv_usecs = (tv2.tv_sec - tv1.tv_sec ) * 1E6 +
(tv2.tv_usec - tv1.tv_usec);
*/
/*
DB_QueryINSERT ("can not debug",
"INSERT INTO debug"
" (DebugTime,Txt)"
" VALUES"
" (NOW(),'ActCod = %ld')",
Act_GetActCod (Gbl.Action.Act));
*/
/*****************************************************************************/
/*********************************** TODO ************************************/
@ -459,12 +471,11 @@ En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
#define Log_PLATFORM_VERSION "SWAD 18.86.2 (2019-03-24)"
#define Log_PLATFORM_VERSION "SWAD 18.86.3 (2019-03-24)"
#define CSS_FILE "swad18.85.1.css"
#define JS_FILE "swad18.85.js"
/*
TODO: Comprobar consultas de usuarios a quienes seguir después de los cambios en privacidad del perfil público básico
Version 18.86.3: Mar 24, 2019 Optimization in suggestion of users to follow. (240965 lines)
Version 18.86.2: Mar 24, 2019 Optimization in suggestion of users to follow. (240935 lines)
Version 18.86.1: Mar 23, 2019 Changes in writing of a floating point number.
Mask applied to figure about privacy.

View File

@ -368,19 +368,28 @@ static unsigned long Fol_GetUsrsToFollow (unsigned long MaxUsrsToShow,
")"
" UNION "
"("
/***** Likely unknown users *****/
// 4. Add some likely unknown random users
"SELECT UsrCod FROM usr_data"
" WHERE UsrCod<>%ld"
" AND Surname1<>''" // Surname 1 not empty
" AND FirstName<>''" // First name not empty
/***** Likely unknown userd *****/
// 4. Add some likely unknown random user
// Be careful with the method to get some random users
// from the big table of users.
// It's much faster getting a random code and then get the first users
// with codes >= that random code
// that getting all users and then ordering by rand.
"SELECT usr_data.UsrCod"
" FROM usr_data,"
"(SELECT ROUND(RAND()*(SELECT MAX(UsrCod) FROM usr_data)) AS RandomUsrCod)" // a random user code
" AS random_usr"
" WHERE usr_data.UsrCod<>%ld"
" AND usr_data.Surname1<>''" // Surname 1 not empty
" AND usr_data.FirstName<>''" // First name not empty
"%s" // SubQuery4
// Do not select my followed
" AND UsrCod NOT IN"
" AND usr_data.UsrCod NOT IN"
" (SELECT FollowedCod FROM usr_follow"
" WHERE FollowerCod=%ld)"
" AND usr_data.UsrCod>=random_usr.RandomUsrCod" // random user code could not exists in table of users
// Get only MaxUsrsToShow users
" ORDER BY RAND() LIMIT %lu"
" LIMIT %lu"
")"
") AS UsrsToFollow"
// Get only MaxUsrsToShow users
@ -395,12 +404,12 @@ static unsigned long Fol_GetUsrsToFollow (unsigned long MaxUsrsToShow,
Gbl.Usrs.Me.UsrDat.UsrCod,
SubQuery3,
Gbl.Usrs.Me.UsrDat.UsrCod,
MaxUsrsToShow * 3, // 3/4 likely known users
MaxUsrsToShow * 2, // 2/3 likely known users
Gbl.Usrs.Me.UsrDat.UsrCod,
SubQuery4,
Gbl.Usrs.Me.UsrDat.UsrCod,
MaxUsrsToShow, // 1/4 likely unknown users
MaxUsrsToShow, // 1/3 likely unknown users
MaxUsrsToShow);
}

View File

@ -1020,6 +1020,8 @@ static void Lay_ShowLeftColumn (void)
static void Lay_ShowRightColumn (void)
{
extern const char *Txt_If_you_have_an_Android_device_try_SWADroid;
struct timeval tv1,tv2;
long tv_usecs;
/***** Banners *****/
Ban_WriteMenuWithBanners ();
@ -1044,9 +1046,23 @@ static void Lay_ShowRightColumn (void)
}
else if (Gbl.Usrs.Me.Logged) // I am logged
{
gettimeofday (&tv1,NULL);
/***** Suggest one user to follow *****/
fprintf (Gbl.F.Out,"<div class=\"LEFT_RIGHT_CELL\">");
Fol_SuggestUsrsToFollowMainZoneOnRightColumn ();
gettimeofday (&tv2,NULL);
tv_usecs = (tv2.tv_sec - tv1.tv_sec ) * 1E6 +
(tv2.tv_usec - tv1.tv_usec);
DB_QueryINSERT ("can not debug",
"INSERT INTO debug"
" (DebugTime,Txt)"
" VALUES"
" (NOW(),'Fol_SuggestUsrsToFollowMainZoneOnRightColumn: %ld us')",
tv_usecs);
fprintf (Gbl.F.Out,"</div>");
}